相关疑难解决方法(0)

如何'揭开'表达

假设我有一个大阵列的ng-repeat.

当ng-repeat运行时,它会将该数组的每个元素添加到隔离范围,并将数组本身放在范围内.这意味着$ digest会检查整个数组是否有变化,最重要的是,它会检查该数组中的每个元素是否有变化.

看到这个plunker作为我正在谈论的一个例子.

在我的用例中,我从不更改数组中的单个元素,因此我不需要让它们被观看.我只会更改整个数组,在这种情况下,ng-repeat会重新整理表格.(如果我错了,请告诉我..)

在一个(比方说)1000行的数组中,这是我不需要评估的1000多个表达式.

如何在观看主阵列时从观察者中取消注册每个元素?

也许不是取消注册我可以更好地控制我的$ digest并以某种方式跳过每一行?

这个具体案例实际上是一个更普遍的问题的例子.我知道$ watch会返回一个'deregisteration'函数,但是当指令正在注册监视时这没有用,这在大多数情况下都是如此.

angularjs

70
推荐指数
3
解决办法
4万
查看次数

在AngularJS中只注册一次事件侦听器

我正在从我的导航栏控制器向另一个控制器广播一个事件,但是如果我多次初始化控制器(当我正在通过应用程序前进和后退时),在我的$on事件上执行的函数会多次运行,因为它已经多次注册.

$rootScope.$on('submitBookingDialog', function(){
    submitBookingDialog();
});
Run Code Online (Sandbox Code Playgroud)

如何防止submitBookingDialog()不止一次发生?

我找到了解决方案,但我不知道它是否理想.

javascript angularjs

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

angularjs ×2

javascript ×1