【发布时间】:2014-02-24 23:03:27
【问题描述】:
我想根据一个在组件属性中设置的 url 执行 HTTPRequest。我尝试如下所示,但 dataUrl 总是没有。似乎组件的构造函数是在 html 中设置的属性对组件可用之前执行的。
如何让 HTTPRequest 等到 dataUrl 变量可用?
组件.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>
【问题讨论】:
标签: dart angular-dart