$ http速记与角速度1.4.3之间的速记有什么区别?

时间:2016-02-11 16:52:14

标签: javascript angularjs ajax http

我正在尝试选择在Angular中使用$ http服务的标准 - longhand or shorthand/shortcut

两者之间是否有任何差异用于开发目的?表现还是其他?或者它只是归结为偏好?

我更喜欢手写,我觉得它更具可读性,更喜欢换行符:

 $http({
    method: 'POST',
    url: '/api/mydata',
    data: JSON.stringify($scope.myData),
    headers: {
       'Content-Type': 'application/json'
    }
 })
    .then(getReportDataComplete)
    .catch(getReportDataFailed);

与:相比:

 $http.post('api/mydata/',{
    data: JSON.stringify($scope.myData),
    headers: {
       'Content-Type': 'application/json'
    }
 })
    .then(getReportDataComplete)
    .catch(getReportDataFailed);

1 个答案:

答案 0 :(得分:4)

简答

它们完全相同,你可以使用让你最舒服的那个。

它在哪里定义?

$ http函数的短函数在ng/http.js中定义。 在此文件中,您可以找到以下行:

createShortMethodsWithData('post', 'put', 'patch');

如果你看一下createShortMethods的定义,你可以看到:

function createShortMethods(names) {
  forEach(arguments, function(name) {
    $http[name] = function(url, config) {
      return $http(extend({}, config || {}, {
        method: name,
        url: url
      }));
    };
  });
}

上面的函数将遍历给定的标签,并设置短函数以扩展使用正确参数给出的配置,同时调用$ http()