查看文档我应该将::
添加到表达式中,它应该自行删除。我不知道的是为什么它有时会起作用,有时候却没有。
我创建了Plunker here,80%的时间会运行所有正确的oneTime $$ watchListener表达式(按钮不起作用)。
但有时在以完整模式启动预览时,它不会触发,按钮会更改值。
我发布这个是因为我刚刚升级,并且使用下面的代码在我的开发环境中100%失败
<div class="user-location">
<span ng-if="::get.edit">
<span ng-if="::user.postal">
<span ng-bind="::user.postal"></span>
</span>
<span ng-if="::!user.postal">
<span>No postal</span>
</span>
Edit
</span>
<span ng-if="::!get.edit">
<span ng-bind="::user.postal"></span>
</span>
</div>
其他人是否有这个问题,或者知道触发它的确定方法?
查看代码:
// https://code.angularjs.org/1.3.0-beta.19/angular.js line 11404
if (!parsedExpression) {
if (exp.charAt(0) === ':' && exp.charAt(1) === ':') { // Expressions get through here
oneTime = true;
exp = exp.substring(2);
}
...
if (parsedExpression.constant) {
parsedExpression.$$watchDelegate = constantWatchDelegate;
} else if (oneTime) {
parsedExpression.$$watchDelegate = parsedExpression.literal ? // Get through here as well but the
oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; // $$watchDelegate method never gets called
}
...