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

链接地址: http://www.djcxy.com/p/95233.html

上一篇: Angularjs directive controller : wait for DOM to be ready

下一篇: AngularJS $q.all() results are null