Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 在没有超时的情况下更新$scope?_Javascript_Angularjs - Fatal编程技术网

Javascript 在没有超时的情况下更新$scope?

Javascript 在没有超时的情况下更新$scope?,javascript,angularjs,Javascript,Angularjs,这个控制器工作正常,但有点难看。我应该如何以一种更有效的方式更新$scope?您应该使用服务来封装服务调用,并维护希望在不同控制器之间持久化的数据。通过这种方式,您的控制器通常会变得简单得多。请看我在这里写的一个示例。您应该使用一个服务来封装服务调用,并维护希望在不同控制器之间持久化的数据。通过这种方式,您的控制器通常会简单得多。请看我在这里写的一个示例,您不应该在控制器中使用$http,这是第一条规则。你能解释更多关于无错误的信息吗,为什么你会这样使用,这是我重构后的代码 function a

这个控制器工作正常,但有点难看。我应该如何以一种更有效的方式更新$scope?

您应该使用服务来封装服务调用,并维护希望在不同控制器之间持久化的数据。通过这种方式,您的控制器通常会变得简单得多。请看我在这里写的一个示例。您应该使用一个服务来封装服务调用,并维护希望在不同控制器之间持久化的数据。通过这种方式,您的控制器通常会简单得多。请看我在这里写的一个示例,您不应该在控制器中使用$http,这是第一条规则。你能解释更多关于无错误的信息吗,为什么你会这样使用,这是我重构后的代码

function armyController($scope, $http) {
  var no_errors = true;
  function getArmyData () {
    $http
      .get('/army')
      .success(function(data) {
        $scope.army = data;
        getArmyData();
      })
      .error(function(data) {
        console.log('Error: ' + data);
        no_errors = false;
      });
  }
  if (no_errors) {
    getArmyData();
  }
}

您不应该在控制器中使用$http,这是第一条规则。你能解释更多关于无错误的信息吗,为什么你会这样使用,这是我重构后的代码

function armyController($scope, $http) {
  var no_errors = true;
  function getArmyData () {
    $http
      .get('/army')
      .success(function(data) {
        $scope.army = data;
        getArmyData();
      })
      .error(function(data) {
        console.log('Error: ' + data);
        no_errors = false;
      });
  }
  if (no_errors) {
    getArmyData();
  }
}

在我看来,我尽量不在控制器中使用
$http
服务,因为这可能意味着我需要创建一个提供者来处理事务。这样可以将http逻辑隔离到可维护的模块中,并且不会让控制器中的函数和变量相互之间不需要了解。在我看来,我尽量不在控制器中使用
$http
服务,因为这可能意味着我需要创建一个提供程序来处理事务。通过这种方式,您可以将http逻辑隔离到可维护的模块中,并且不需要使用不需要相互了解的函数和变量来扰乱控制器。