6

我正在使用 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 中不再适用

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

知道如何使用 1.2.0 进行这项工作吗?

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

4

3 回答 3

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

于 2013-10-16T16:23:29.057 回答
2

因为它刚刚坏了,目前没有解决方法。

根据变化 long

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

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

根据这里的评论,当前的实现被破坏了。
其他来源也会告诉你同样的情况。

于 2013-10-16T16:10:51.520 回答
2

这似乎与您在同一个标​​签上混合两件事有关 - 它同时具有 ng-include 和 ng-controller 。将您的跨度放入一个新的跨度并将 ng-controller 移动到外部标签。

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

于 2013-10-16T16:30:20.073 回答