组件属性为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> 
+0

[可以在angular.dart构造函数中访问HTML中设置的属性吗?](http://*.com/questions/21172775/is-it-possible-to-access-attributes-set -in-html-in-angular-dart-constructor) –

+0

另请参阅http://*.com/questions/21080837 和http://*.com/questions/21061290 –

实施NgAttachAware,并把你的代码在attach方法。当调用attach时,属性已经被评估。

+0

非常感谢!我会留下这个问题,因为它不是一般的访问属性,而是关于初始化时间。 –