工作版Angular 1.0.7 plunkr
不起作用的版本Angular 1.2.1 plunkr
在角度1.0.7中,以下ngInclude工作正常:
<li class="dropdown" id="header_notification_bar" data-ng-include="" src="'notifications.tpl.html'" data-ng-controller="NotificationsCtrl"></li>
notifications.tp.html看起来像这样:
<a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
<i class="icon-warning-sign"></i>
<span class="badge">{{notifications.length}}</span>
</a>
<ul class="dropdown-menu extended notification">
<li>
<p>You have {{notifications.length}} new notifications</p>
</li>
<li>
<ul class="dropdown-menu-list scroller" scroller style="height: 250px">
<li data-ng-repeat="n in notifications" >
<a href="#">
<span class="label label-success"><i class="icon-plus"></i></span>
{{n.summary}}
<span class="time">{{n.time}}</span>
</a>
</li>
</ul>
</li>
<li class="external" >
<a href="#">See all notifications <i class="m-icon-swapright"></i></a>
</li>
</ul>
在Angular 1.2.1中,模板被加载但看起来视图没有绑定到控制器/范围。
如果您运行上面的2个plunkrs并单击感叹号,您将看到只有Angular 1.0.7显示通知项。
我已阅读here找到的“从1.0迁移到1.2”文档,但看不到任何相关内容。也许我错过了一些东西。
有人帮忙吗?
谢谢, 丹
答案 0 :(得分:2)
它似乎是在将控制器传递给ng-include时所做的更改。正如@Sarah指出的那样,这可能是一个范围变化。
Here is a plunker正在发挥作用。
我将ng-controller
移动到模板本身,它似乎再次起作用。但是必须将模板包装在div
中(不太理想,我知道)。
<div data-ng-controller="NotificationsCtrl">
我还将模板src
添加到ng-include
,因为它有点清洁:
<li class="dropdown" id="header_notification_bar" data-ng-include="'notifications.tpl.html'"></li>
希望这有帮助。