组件属性为none - 时间问题
问题描述:
我想基于在组件属性中设置的url执行HTTPRequest。我尝试了它,如下所示,但dataUrl始终没有。看起来组件的构造函数在组件中可用的属性之前执行,这些属性在html中设置。组件属性为none - 时间问题
如何告诉HTTPRequest等待dataUrl变量可用?
component.dart
class TableData {
static List data = [];
TableData() {}
//GETTERS
List get getData => data;
}
@NgComponent(
selector: 'jstable',
templateUrl: 'jstable/jstable_component.html',
cssUrl: 'jstable/jstable_component.css',
publishAs: 'cmp'
)
class JSTableComponent {
@NgAttr('name')
String name;
@NgAttr('data-url')
String dataUrl;
TableData _table_data = new TableData();
final Http _http;
bool dataLoaded = false;
JSTableComponent(this._http) {
_loadData().then((_) {
dataLoaded = true;
}, onError: (_) {
dataLoaded = false;
});
}
//GETTERS
List get data => _table_data.getData;
//HTTP
Future _loadData() {
print("data url is");
print(dataUrl);
return _http.get(dataUrl).then((HttpResponse response) {
TableData.data = response.data['data'];
});
}
}
的.html
<jstable name="myjstablename" data-url="table-data.json"></jstable>
答
实施NgAttachAware
,并把你的代码在attach
方法。当调用attach
时,属性已经被评估。
+0
非常感谢!我会留下这个问题,因为它不是一般的访问属性,而是关于初始化时间。 –
[可以在angular.dart构造函数中访问HTML中设置的属性吗?](http://*.com/questions/21172775/is-it-possible-to-access-attributes-set -in-html-in-angular-dart-constructor) –
另请参阅http://*.com/questions/21080837 和http://*.com/questions/21061290 –