获取一次性绑定以适用于 ng-if
Get one-time binding to work for ng-if
这个问题以前有人问过,但我无法让该解决方案起作用,所以我想知道我的细节是否有不同之处。
代码非常非常简单:
<h1 ng-if="vm.building.name !== undefined">update {{vm.building.name}}</h1>
如前所述,此片段工作正常。如果设置了vm.building.name
,则会显示标记。
但是,如果我尝试使一次性绑定工作,那就是:
<h1 ng-if="::vm.building.name !== undefined">update {{vm.building.name}}</h1>
标记根本不显示。我尝试了变体:
<h1 ng-if="::(vm.building.name !== undefined)">update {{vm.building.name}}</h1>
还是没有。这是一件令人沮丧的简单事情。见鬼,代码似乎在 jsfiddle 中工作,但我无法让它适用于我的特定应用程序。某处有设置吗?我需要更改一些随机琐事?
我在那里使用角度1.5.7
,如果这很重要的话。
编辑
<h1 ng-if="vm.building.name !== undefined">update {{::vm.building.name}}</h1>
也就是说,设置{{::vm.building.name}}
最终会给我带来我想要的结果,但代价是额外的、无用的观察者,对吧?
进一步编辑我的编辑:由于多种原因,这不是一个很好的解决方案。
编辑 2
我的问题源于这样一个事实,即vm.building.name
等待 API 调用,因此错过了第一个$watch
摘要(我认为)。因此,有没有办法让ng-if
在第一次设置vm.building.name
后直接做它的事情,然后退出?
好吧,在这里,您正在检查一次性数据绑定vm.building.name
undefined
值,并且由于它是一次性数据绑定,因此条件将始终为假。
修改您的ng-if
并使其更简单
<h1 ng-if="::vm.building.name">update {{::vm.building.name}}</h1>
请查找工作堆积器:https://plnkr.co/edit/QA6ZA7e0zHnN45oQWzQH?p=preview
这将起作用!
干杯!
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- NG类适用于NG重复之外
- Angularjs ng-options 问题仅适用于 Chrome 浏览器
- 为什么myForm$提交的不适用于ng消息,但适用于ng if
- ng-show / ng-hide / ng-if 不适用于 Angular 指令
- 适用于 ngRoute、ng-view 和代码复制的最佳实践
- angularjs 1.3 javascript动画适用于ng repeat,但不适用于ng if
- 仅适用于if
- JS won't适用于second 'id'If first 'id'是在另一页
- AngularJS中的级联表达式适用于ng-show,但不适用于ng-if
- 在AngularJS中使用$watch获取用户输入文本不适用于ng-if
- 获取一次性绑定以适用于 ng-if
- Angular ng-if用于检查空字符串不工作
- Ng-repeat只适用于$index
- 触发ng-show只适用于ng-click事件