Angular1.4とコンポーネントを備えた新しいルーターを使用してアプリを作成しています。ただし、$ scope内の変数の値、またはコントローラー内のこれを変更しても、値がテンプレートに伝播されないことがわかりました。
$ scope。$ digest()を手動で呼び出したところ、すべてが機能しました。これはそうあるべき方法ですか?
これは私のコードです。(メインコントローラー)
function appController ($router, authService, $scope) {
$scope.alex1 = 'salut1';
this.alex2 = "salut2";
$router.config ([
{ path: '/home', components: {'main' : 'home'}},
{ path: '/account', components: {'main' : 'account' }},
{ path: '/campaigns', components: {'main' : 'campaigns' }},
{ path: '/login', components: {'main' : 'login' }},
{ path: '/', redirectTo: '/home' }
]);
//
setTimeout(function() {
$scope.alex1 = 'salut111';
console.log ($scope.currentUser);
$scope.$digest();
}, 2000);
}
$ digestを呼び出さないと、alex1の値はテンプレート内で更新されませんでした。
この問題はAngularバージョンではありませんがsetTimeout
、Angularダイジェストループの外側で実行されます。$timeout
代わりにサービスを使用する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加