ng-include onload不再工作在angularjs 1.2.0 rc

时间:2013-10-16 16:05:45

标签: angularjs

我正在使用angular的ng-include,如下所示:

主要的HTML:

<span ng-include="'tpl.html'" ng-controller="TplCtrl" onload="loadMe()"></span>

模板tpl.html:

<h2>{{ tplMessage }}</h2>

控制器:

$scope.loadMe = function () {
        $scope.tplMessage =  'template';
    }
})

这对于angularjs 1.1.5工作正常,但在1.2.0 rc 3

中不再适用

这是一个傻瓜: http://plnkr.co/edit/zYRevS?p=preview

知道如何使用1.2.0进行此操作吗?

编辑: 我看到了这个:https://github.com/angular/angular.js/issues/3584#issuecomment-25279350 但是在这里找不到这个问题的答案。

3 个答案:

答案 0 :(得分:6)

好的,我在这里找到答案:https://github.com/angular/angular.js/issues/3584#issuecomment-25857079

ng-include不能与ng-controller位于同一元素上。在1.1.5中,它正在工作

这是一个工作更新的plunker,其中包含一个包含ng-include的html元素: http://plnkr.co/edit/CB8jec?p=preview

答案 1 :(得分:2)

因为它刚刚破裂,目前还没有解决方法。

根据change long

“之前ngInclude仅更新了其内容,在此更改后,每次包含新内容时,ngInclude都会重新创建。这可确保所有包含内容的单个rootElement始终存在,这使得动画的CSS样式定义更加容易。“

但它似乎没有被改进,而是被打破了。

根据评论here,目前的实施已被打破 其他来源会告诉你同样的事情。

答案 2 :(得分:2)

这似乎与你在同一个标​​签上混合两件东西有关 - 它上面有ng-include和ng-controller。将你的跨度放在一个新的内部并将ng-controller移动到外部标签。

他们可能会改变处理这些属性的顺序。一般来说,我认为将它们混合在同一个标​​签上并不是一个好主意。