我正在使用Angular 1.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的值未在模板内更新。
答案 0 :(得分:2)
问题不在Angular版本中,而是在setTimeout
中,它在Angular摘要循环之外运行。您应该使用$timeout
服务。