组件属性为none - 计时问题

时间:2014-02-24 14:57:27

标签: dart angular-dart

我想基于url执行HTTPRequest,该url在组件属性中设置。我尝试过如下所示,但dataUrl始终没有。似乎组件的构造函数在组件可用的属性(html中设置)之前执行。

如何判断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>

1 个答案:

答案 0 :(得分:1)

实施NgAttachAware并将您的代码放入attach方法中。调用attach时已经评估了属性。