Angularjs指令控制器:等待DOM准备就绪
我正在写一个从给定url加载数据的lineChart指令:
<line-chart dataurl="{{ some_url }}"></line-chart>
然后在我的lineChart指令中,我有一个应该加载数据的控制器:
directive('lineChart', function() {
return {
restrict: 'EA',
scope: {
dataurl: '@'
},
controller: function($scope, $http){
$http.get($scope.dataurl)
.success(function(data) {
$scope.data = data;
});
},
link: function(scope, element, attrs) {
...
这里的问题是,在DOM准备就绪之前调用控制器,这意味着dataurl =“”并且出现404错误。 我想有一个使用$ timeout服务的解决方案,但我不需要整个DOM准备好,只有<line-chart>
部分。 我怎么办?
谢谢。
使用ng-attr- *指令来让角在合适的时间构造真实属性:
<line-chart ng-attr-dataurl="some_url"></line-chart>
比照 http://docs.angularjs.org/guide/directive
编辑:请注意,您需要在您的控制器中使用$scope.some_url
上一篇: Angularjs directive controller : wait for DOM to be ready