虽然问题更多,但我认为 javascript 类型问题比 Angular 问题更多,我正在创建一个服务,我会这样调用它
// controller injects activityApi , then service function call is made
var activities = activityApi.getActivityById(1122);
如果我不在函数名称前面放置“this”关键字,则会出现错误
1. 为什么我需要“这个”
2. 还有什么其他选择? (我正在尝试养成不使用 function blah() { ... }
执行老式 javascript 的习惯
this.getActivityById = function(id) {
$http.get('/Umbraco/Api/ActivityApi/GetActivity').
success(function (data, status, headers, config) {
console.log(data);
return data;
}).
error(function (data, status, headers, config) {
// log error
});
};
最佳答案
如果您正在编写一个工厂,请使用工厂内的一个对象,并将所有调用放入其中。就像
(function() {
'use strict';
angular
.module('app')
.factory('activityApi', activityApi);
activityApi.$inject = ['$http'];
function activityApi($http) {
var service = {
getActivityById : getActivityById ,
};
return service;
function getActivityById (id) {
$http.get('/Umbraco/Api/ActivityApi/GetActivity').
success(function (data, status, headers, config) {
console.log(data);
return data;
}).
error(function (data, status, headers, config) {
// log error
});
};
};
})();
这里您将返回可调用函数的工厂对象。
在这里你可以调用工厂函数
var activities = activityApi.getActivityById(1122);
关于javascript - Angular Service 创建的函数需要 this 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40254180/