我是 Angular JS 的新手。我在推荐在线教程并遇到了$ http服务。
(function () {
"use strict";
angular
.module("ngClassifieds") // referring module which is already created
.controller("classifiedsCtrl", function ($scope, $http) {
$http.get('data/classifieds.json')
.then(function(classifieds){
$scope.classifieds = classifieds.data;
})
});
})();
在这段代码中,我无法弄清楚这些行。能够 有谁解释这里究竟发生了什么?
$http.get('data/classifieds.json') .then(function(classifieds){ $scope.classifieds = classifieds.data; }
我的data/classifieds.json
文件中有data。
我的问题是,data
中引用的classifieds.data
究竟是什么?
classifieds.data
代表什么? $scope.classifieds
的结果是什么?答案 0 :(得分:2)
$ http返回一个promise,它是一个异步调用,angular使用一个名为Q for promise的库的fork,你可以在这里看到$ q文档:https://docs.angularjs.org/api/ng/service/ $ q。 当promise得到满足时,这意味着异步调用完成,.then方法调用成功或错误回调,具体取决于异步调用的结果。
.then(successCallback,[errorCallback],[notifyCallback]) - 无论如何 如果承诺已经或将要解决或拒绝,那么电话 一个成功或错误回调一次异步 结果可用。使用单个参数调用回调: 结果或拒绝原因。另外,通知回调可以 被称为零次或多次以提供进度指示 承诺得到解决或拒绝。
传递给成功回调的参数是一个对象,其中包含有关请求响应的信息。 data
属性包含响应的主体,换句话说,data/classifieds.json
文件的所有内容(在您的情况下),因此,$scope.classifieds
将包含{{1}返回的json }}
这是一篇关于promises和$ q的友好文章:http://www.dwmkerr.com/promises-in-angularjs-the-definitive-guide/
答案 1 :(得分:1)
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
在您的代码中,
$http.get('data/classifieds.json') // This is the URI of your json file
.then(function(classifieds){ // Success callback
$scope.classifieds = classifieds.data; // Here, you are assigning response's data into $scope.classifieds
}