在我的控制台中,错误即将出现“getIdData未定义”我的代码出了什么问题。这里的交易是我的服务,getIdData是我的服务功能。
$scope.editUserDetail = function editUserDetail(){
$scope.showEditView = !$scope.showEditView;
$scope.showSubmitView = !$scope.showSubmitView;
console.log(deal);
deal.getIdData().then(function successCb(data){
$scope.editIdOptionsData=data;
});
};
答案 0 :(得分:1)
请在此处查看工作示例:Demo
您忘记从服务中返回服务对象。
即
在您的服务中写下以下代码
return service;
即
angular.module('account').service('deal', function deal($http, accountConfiguration, $q, $log, httpHelper) {
var service = {};
var baseUrl = account.app.url;
service.getIdData = function(data, accountId, decisionMakerDetail) {
var def = $q.defer();
var url = baseUrl + '/api/accountsusers/' + accountId + '?role=' + decisionMakerDetail;
httpHelper._$http({
method: 'post',
url: url,
data: data,
def: def
}, function(resp) {
def.resolve(resp.msg);
});
return def.promise;
};
return service;
});
或者在使用服务时,您可以使用此
进行编写angular.module('account').service('deal', function deal($http, accountConfiguration, $q, $log, httpHelper) {
var baseUrl = account.app.url;
this.getIdData = function(data, accountId, decisionMakerDetail) {
var def = $q.defer();
var url = baseUrl + '/api/accountsusers/' + accountId + '?role=' + decisionMakerDetail;
httpHelper._$http({
method: 'post',
url: url,
data: data,
def: def
}, function(resp) {
def.resolve(resp.msg);
});
return def.promise;
};
});
有关详细信息,请查看 - Services
答案 1 :(得分:0)
您作为参数发送的对象并未定义getIdData()函数。
将您的日志更改为:
console.log(deal.getIdData);
然后检查它是否返回功能代码/定义。
这是一个链接,其中包含如何实现工厂和服务的示例。 Angular factory and service
答案 2 :(得分:0)
请清理浏览器并检查source.Look是否加载了deal.getIdData()。可能没有加载。请正确加载。
答案 3 :(得分:0)
您没有从服务注册功能返回持有服务引用的对象。更改您的代码如下工作。
angular.module('account')
.service('deal', function deal($http, accountConfiguration, $q, $log, httpHelper) {
var service = {};
var baseUrl = account.app.url;
service.getIdData = function(data,accountId,decisionMakerDetail){
var def = $q.defer();
var url = baseUrl + '/api/accountsusers/' + accountId + '?role=' + decisionMakerDetail;
httpHelper._$http({
method: 'post', url: url, data: data, def: def
}, function (resp) {
def.resolve(resp.msg);
});
return def.promise;
};
return service;
});
即使deal
服务已注册,但您没有从服务返回任何内容,其值未定义,当您尝试访问deal.getIddata()
时,您会收到上述错误