我创建了超级简单的角度应用,例如following
<html ng-app>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.min.js"></script>
<body>{{"hello"}}</body>
</html>
我发现$rootScope
有一个$watcher
表达式{{"hello"}}
,如果angularjs足够聪明,可以发现表达式是常量,那就更好了无需再看一遍。此功能(如果支持)在某些时候非常有用,例如{{ "" | toRemdomNumber }}
,{{ "key" | getResourceByKey }}
。当范围处于摘要时,这节省了一些内存消耗和计算。
这可能吗?
我知道创建一个像bindonce这样的指令也非常简单,我想要的是angularjs core / $ interpolate服务应该足够智能解析表达式,这样就不会创建不需要的$ watcher。
答案 0 :(得分:0)
我是Angular的新手,但是我发现这个指令在github上叫做bindonce。 https://github.com/Pasvaz/bindonce它将向您展示如何绑定常量一次。 (它在第一次绑定后摆脱了他们的观察者。)它甚至支持过滤器,它消除了不必要的手表。
以下是与过滤器一起使用的bindonce的示例。
<div bindonce="Person">
<span bo-bind="Person.bill | currency:'USD$'"></span>
</div>
这是一篇关于如何尝试取消绑定观察者的文章。到目前为止我只是略过了它。就像我说的那样,我有点新鲜,所以我并不了解所有这些。 http://www.bennadel.com/blog/2480-Unbinding-watch-Listeners-In-AngularJS.htm