0
角度が1の奇妙な問題が起きて、スクリプトがの無限ループに入り、最終的にブラウザがハングします。ここで
は私が基本的に私はボタンが押された後の最初のdivを非表示にする
<script>
$scope.A = true;
$scope.B = [{blah},{blah}];
$scope.updateB = function(){
$scope.B.push({blah});
}
$scope.D = function(key){
$scope.A = false;
return key.name;
}
</script>
<div ng-if="A">
<button ng-click="updateB()"></button>
</div>
<div ng-repeat="key in B">
{{D(key)}}
</div>
をやろうとしていますものです。私は "updateB"関数でそれを行うことができることを知っています。しかし、いいえ、私は表現が評価された後、 "D"でそれをしたいです。それは無限ループに入ります。
ここで間違っていることを誰にでも教えてもらえますか?
@estus私はBを更新すると、式が評価され、D() 。このフローの問題は何ですか? –
これは正しい動作だと思います。 D()は角周期ごとに呼び出されます。 Bに1つ以上の要素がある場合、関数D()が呼び出されます。 –
ええ、私はDが(長さBまで)複数回呼び出されますが、無限ループでは呼び出されないことを理解しています。つまり、Bに要素が1つしかない場合でも、Dが繰り返し呼び出されます。 –