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