Angularjs 角度工厂:如何显示动态数据?

Angularjs 角度工厂:如何显示动态数据?,angularjs,Angularjs,嗨,我正在尝试使用来自http源的angularjs显示数据,但它能让它工作吗。以下是我目前的代码: HTML: 此代码返回以下json: [{"id":"1","title":"task 1"}, {"id":"2","title":"task 2"}, ] 但是什么也没有显示。有人能给我指出正确的方向吗?在您的特定情况下,您将返回未定义的回调函数。这是因为在.success中,第一个参数是数据,而不是与中不同的响应。然后,参数是response,在那里您需要response.data来获

嗨,我正在尝试使用来自http源的angularjs显示数据,但它能让它工作吗。以下是我目前的代码:

HTML:

此代码返回以下json:

[{"id":"1","title":"task 1"}, {"id":"2","title":"task 2"}, ] 

但是什么也没有显示。有人能给我指出正确的方向吗?

在您的特定情况下,您将返回未定义的回调函数。这是因为在.success中,第一个参数是数据,而不是与中不同的响应。然后,参数是response,在那里您需要response.data来获取数据

因此,一个简单的解决方案是:

getTasks: function(callback){
   //... 
   $http.get(url).success(function(data){
        callback(data);
   });
}
但更重要的是,你应该读一下。通常,在使用内置或第三方的角度服务时,这非常有用。在本例中,您实际上不需要直接使用$q,因为$http已经返回了$q-promise,但它确实向您展示了promise是如何与.then处理程序一起使用的,而不是传统的回调方法

因此,我将为getTasks重写您的代码:

在控制器中:

taskServices.getTasks()
   .then(function(data){     
      $scope.items = data;
   });

在这个简单的例子中,似乎承诺用一种方法代替了一种语法上不同的承诺方法,这个例子可能是正确的。然而,承诺有其他方面,它们与Angular服务的工作方式相一致$http、$timeout、ngRoute和ui路由器中的解析等。

谢谢,这就成功了:-。我还在学习Angularjs的过程中,我一定会仔细阅读承诺。再次感谢。
getTasks: function(callback){
   //... 
   $http.get(url).success(function(data){
        callback(data);
   });
}
getTasks: function(){
   //... 
   return $http.get(url) // notice the return here
      .then(function(response){
         return response.data;  // and here
      });
}
taskServices.getTasks()
   .then(function(data){     
      $scope.items = data;
   });