gpt4 book ai didi

javascript - Angular Service 创建的函数需要 this 关键字

转载 作者:行者123 更新时间:2023-12-03 05:48:03 26 4
gpt4 key购买 nike

虽然问题更多,但我认为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com