AngularJS - 将v1.2.5升级到1.3以使用bind一次

时间:2014-08-15 11:18:11

标签: angularjs optimization data-binding angularjs-scope bindonce

我正在努力提高ng-repeat的性能。我已将项目升级为使用库v1.3.0(主库和路径)。

我正在尝试使用绑定一次:Do bindings nested inside of a lazy one-time ng-repeat binding bind just once?

然而,当我将::添加到我的ng-repeat时,列表未填充:

<li ng-repeat="info in Profile.ChangeInfo">                 
    <p> {[{info.Message}]} </p>
</li>

以上作品。

以下失败:

<li ng-repeat="info in ::Profile.ChangeInfo">                   
    <p> {[{::info.Message}]} </p>
</li>

我看到的错误是:

Error: [$parse:syntax] http://errors.angularjs.org/1.3.0-beta.9/$parse/syntax?p0=%3A&p1=not%20a%20primary%20expression&p2=1&p3=%3A%3AProfile.ChangeInfo&p4=%3A%3AProfile.ChangeInfo

更新 升级到测试版16,现在在IE8中看到这个错误:

网页错误详情

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MS-RTC LM 8; InfoPath.3) 时间戳:星期五,2014年8月15日12:01:03 UTC

Message: [$injector:modulerr] Failed to instantiate module ng due to:
Object doesn't support this property or method
http://errors.angularjs.org/1.3.0-beta.16/$injector/modulerr?p0=ng&p1=Object%20doesn't%20support%20this%20property%20or%20method
Line: 3982
Char: 7
Code: 0
URI: http://local host:1010/js/vendor/angular.js

2 个答案:

答案 0 :(得分:7)

自angularjs版本1.3.0-beta.16以来,bindonce语法::一直是introduced

您必须将angularjs升级到版本1.3.0-beta.16或更新版本。

答案 1 :(得分:2)

请在此处查看示例演示http://jsbin.com/wimon/2/edit

使用最新的angularjs beta

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular.min.js"></script>

删除方括号

<li ng-repeat="info in ::Profile.ChangeInfo">                   
    <p> {{::info.Message}} </p>
</li>