加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

anglejs – 一次性绑定与ng-if在角度?

发布时间:2020-12-17 07:49:44 所属栏目:安全 来源:网络整理
导读:如果我有一个看法: div ng-repeat="foo in foos" p ng-if="bar"omg lol/p p ng-if="!bar"lol omg/p/div 我实际上是创造(2 * foos.length)1 $$观察者,这真的不好.我已经在线发现了几个来源,说你可以做ng-if =“:: bar”,但是当我这样做时观察者的数量不会改
如果我有一个看法:
<div ng-repeat="foo in foos">
  <p ng-if="bar">omg lol</p>
  <p ng-if="!bar">lol omg</p>
</div>

我实际上是创造(2 * foos.length)1 $$观察者,这真的不好.我已经在线发现了几个来源,说你可以做ng-if =“:: bar”,但是当我这样做时观察者的数量不会改变.有没有办法强制 – 如果是一次绑定?

真的很笨,不得不做:

<div ng-repeat="foo in foos" ng-if="bar">
  <p>omg lol</p>
</div>
<div ng-repeat="foo in foos" ng-if="!bar">
  <p>lol omg</p>
</div>

我相信会给我一些像4 $$观察者的东西…所以我正在寻找一种替代方案,以避免这样的愚蠢.

只是延长我的意见回答.

Angular 1.3一次绑定语法(:):的确会删除不必要的手表.只是在设置相关数据后,您需要测量一次手表.这就是为什么.当您在视图中设置一次性绑定属性时,角度将在其上设置一个临时手表,直到它获得一个定义的值,即除了未定义的值之外.这种方法是出于某种原因 – 为了支持通过延迟操作(如ajax调用,超时,承诺链解析等)填充的绑定值.没有这个::将不能成功地在任何东西,但预先填充的绑定值.

所以只要确保在某个时间点设置一些值到一次绑定值.不要让它保持不确定.

假设你有条件< divng-if =“:: lol”>< / div>重复100次.只要确保将值绑定到中继器或某些确定lol状态的操作即使该操作失败(例如ajax调用错误)仍然设置一个值(甚至为null也是JavaScript中的一个值).在即将到来的消息循环之后,手表将被移除,这个循环会使相应的DOM绑定.

在你的特定商店里,你也可以这样做:

<ul ng-repeat="item in items"  ng-if="::lol">
  <li>{{ ::item }}</li>
</ul>

代替

<ul ng-repeat="item in items">
  <li ng-if="::lol">{{ ::item }}</li>
</ul>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读