Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Angular 1.4中是否应该手动调用$digest?_Javascript_Angularjs - Fatal编程技术网

Javascript 在Angular 1.4中是否应该手动调用$digest?

Javascript 在Angular 1.4中是否应该手动调用$digest?,javascript,angularjs,Javascript,Angularjs,我正在创建一个带有Angular 1.4的应用程序,以及带有组件的新路由器。然而,我观察到在$scope内或控制器内更改变量的值不会将该值传播到模板 我手动调用了$scope.$digest(),一切正常。是这样吗 这是我的密码。(主控制器) 没有调用$digest,alex1的值没有在模板内部更新。问题不在Angular版本中,而是在运行在Angular digest循环外部的setTimeout中。您应该使用$timeout服务。使用$timeout而不是setTimeout。它会自动触发摘

我正在创建一个带有Angular 1.4的应用程序,以及带有组件的新路由器。然而,我观察到在$scope内或控制器内更改变量的值不会将该值传播到模板

我手动调用了$scope.$digest(),一切正常。是这样吗

这是我的密码。(主控制器)


没有调用$digest,alex1的值没有在模板内部更新。

问题不在Angular版本中,而是在运行在Angular digest循环外部的
setTimeout中。您应该使用
$timeout
服务。

使用
$timeout
而不是
setTimeout
。它会自动触发摘要
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);
}