角度传递参数

时间:2015-01-10 10:32:34

标签: javascript angularjs

我正在尝试学习AngularJs,我在下面的图片中看到了这个代码。作者正在做$http.get("url").then(function()...。我不明白的是onUserComplete函数接受response参数,但在then函数中,他没有传递此response参数,并且该示例有效。根据我在JavaScript中的理解,我们应该这样做:then(onUserComplete(response)) ;任何人都可以向我展示它吗?

enter image description here

4 个答案:

答案 0 :(得分:2)

我建议您再次查看文档:{​​{3}} $ http

但是长话短说:

。然后基本上等待承诺返回,这意味着来自服务器的响应到了。

响应包括来自服务器的数据的参数数据(让我们说json)

然后将excpect函数作为参数,因此函数名称替换为函数,在您的情况下它是onUserComplete。

看看类似的例子:

// Simple GET request example :
$http.get('/someUrl').
  success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
  }).
  error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

答案 1 :(得分:1)

then函数将使用响应(实际上是数据)对象来调用您的回调。

答案 2 :(得分:1)

.then()函数将回调函数作为其参数。回调函数存储在变量onUserComplete中。因此,当作者写.then(onUserComplete)时,onUserComplete未被调用,它只是作为参考传递。

答案 3 :(得分:0)

.then需要一个函数作为参数,这正是onUserComplete的原因。

用一种简单的语法,你会看到:

.then(function (response) { 
    $scope.user = response.data;
});

以更常见的方式,使用匿名语法:

.then(response => 
    $scope.user = response.data;
);

这就是它的全部内容。 onUserComplete只是替代品。