工厂 returns 中的 $http 服务未在 AngularJS 中定义
$http service in Factory returns undefined in AngularJS
我是angularJS新手,尝试做一个CRUD操作来理清我的概念。我尝试使用 angular 工厂,但我 google 很多,无法找到关于以下概念的任何解决方案。我只想在不适合我的控制器中使用我的工厂。
工厂:
(function () {
'use strict';
angular
.module('app', [])
.factory("crudFactory", function (path, myObj) {
return {
AddObject: function (path)
{
$http({
method: "POST",
url: path,
params: { myObj : myObj }
}).then(function mySuccess(response) {
return response.data;
}, function myError(response) {
return "Error Found :" + response.statusText;
});
},
first: function () {
return "";//
}
};
});
})();
我想在控制器中使用这个工厂,但它不工作。
控制器:
(function () {
'use strict';
debugger;
angular
.module('app')
.controller('BusinessProfileCtrl', BusinessProfileCtrl);
function BusinessProfileCtrl($scope, crudFactory) {
debugger;
var vm = this; //vm = view model
function Save() {
debugger;
var businessObj = {
Id:vm.Id,
Name: vm.Name,
};
var abc = crudFactory.AddObject("http://localhost:63358/BusinessUnit/Post", businessObj);
}
vm.Save = Save;
}
})();
希望能得到任何帮助。
提前致谢。
在工厂中 return http promise 并从控制器中捕获该 promise。
像这样修改工厂;
.factory("crudFactory", function() {
return {
AddObject: function(path,myObj) {
return $http({
method: "POST",
url: path,
params: {
myObj: myObj
}
})
},
first: function() {
return ""; //
}
};
});
在控制器中捕捉这样的承诺
var abc;
crudFactory.AddObject("http://localhost:63358/BusinessUnit/Post", businessObj).then(function mySuccess(response) {
abc = response.data;
}, function myError(response) {
abc = "Error Found :" + response.statusText;
});
我是angularJS新手,尝试做一个CRUD操作来理清我的概念。我尝试使用 angular 工厂,但我 google 很多,无法找到关于以下概念的任何解决方案。我只想在不适合我的控制器中使用我的工厂。
工厂:
(function () {
'use strict';
angular
.module('app', [])
.factory("crudFactory", function (path, myObj) {
return {
AddObject: function (path)
{
$http({
method: "POST",
url: path,
params: { myObj : myObj }
}).then(function mySuccess(response) {
return response.data;
}, function myError(response) {
return "Error Found :" + response.statusText;
});
},
first: function () {
return "";//
}
};
});
})();
我想在控制器中使用这个工厂,但它不工作。
控制器:
(function () {
'use strict';
debugger;
angular
.module('app')
.controller('BusinessProfileCtrl', BusinessProfileCtrl);
function BusinessProfileCtrl($scope, crudFactory) {
debugger;
var vm = this; //vm = view model
function Save() {
debugger;
var businessObj = {
Id:vm.Id,
Name: vm.Name,
};
var abc = crudFactory.AddObject("http://localhost:63358/BusinessUnit/Post", businessObj);
}
vm.Save = Save;
}
})();
希望能得到任何帮助。 提前致谢。
在工厂中 return http promise 并从控制器中捕获该 promise。
像这样修改工厂;
.factory("crudFactory", function() {
return {
AddObject: function(path,myObj) {
return $http({
method: "POST",
url: path,
params: {
myObj: myObj
}
})
},
first: function() {
return ""; //
}
};
});
在控制器中捕捉这样的承诺
var abc;
crudFactory.AddObject("http://localhost:63358/BusinessUnit/Post", businessObj).then(function mySuccess(response) {
abc = response.data;
}, function myError(response) {
abc = "Error Found :" + response.statusText;
});