式がregex
と一致する場合、self.display
の値をtrue
に変更します。私はこのロジックを$scope.$apply()
ブロックに書いていますが、if
ブロックがトリガーされたときにDigest already in progress
エラーが発生します。コントローラで更新された値に基づいて更新されないビュー
パーシャルビューテンプレート -
<form ng-controller="termsCtrl as terms">
<div ng-show="terms.display">
<input type="checkbox">
<label> Accept </label>
</div>
</form>
コントローラ - 上記のコードは動作します
if (self.regex.test(self.current)) {
$scope.$apply(function() {
self.display = true;
});
} else {
self.display = false;
}
。 self.display
が真の場合form
内にdiv
が正しく表示されますが、エラーは$digest already in progress
になります。
私はこれまで、
1)
$scope.$watch('self.display', function() {
console.debug(self.display);
})
2)
if(!$scope.$$phase) {
$scope.$apply();
}
3)
$timeout(function(){
self.display = true;
});
上記技術は生成しない以下試みましたどんなエラーでも、内のは決して表示されません。
どのようにあなたの$の範囲は次のように見えますか?範囲に値がありますか? –
なぜ 'angle 'に' display'値を設定して、angleがあなたのために残りを処理できるのでしょうか? –