Javascript 控制器中的AngularJS工厂获取错误
我使用下面的代码来使用factory,我得到了这个错误- 错误:[$injector:undef]$injector/undef?p0=ShowService 这是控制器的代码-Javascript 控制器中的AngularJS工厂获取错误,javascript,angularjs,Javascript,Angularjs,我使用下面的代码来使用factory,我得到了这个错误- 错误:[$injector:undef]$injector/undef?p0=ShowService 这是控制器的代码- 'use strict'; app.controller("LoginController", function (ShowService) { var model = this; //function call when user submit the login form model.login = func
'use strict';
app.controller("LoginController", function (ShowService) {
var model = this;
//function call when user submit the login form
model.login = function (useremail, password) {
var data = {useremail:useremail, password,password};
var url = "/php/user-login.php";
ShowService.UserLogin(url,data);
}
});
这是工厂的代码-
'use strict';
app.factory('ShowService', dataService);
function dataService($http) {
var data = {
"UserLogin": UserLogin,
}
function UserLogin(postUrl, data) {
return $http({
method: "POST",
url: post_url,
data: data
})
}
}
在控制器中使用$scope而不是此
您缺少工厂的退货声明。数据变量上还有一个带有额外逗号的输入错误
你应该这样做:
function dataService($http) {
var data = {
UserLogin: UserLogin
}
return data;
function UserLogin() {
//whatever
}
}
似乎在创建ShowService时忘记返回数据变量 并注意为控制器和服务注入必要的依赖项。斯塔克的回答可能会有所帮助
'use strict';
function dataService($http) {
function UserLogin(postUrl, data) {
return $http({
method: "POST",
url: post_url,
data: data
});
}
var data = { "UserLogin": UserLogin};
return data;
}
dataService.$inject = ["$http"];
app.factory('ShowService', dataService);
请换这一行
var data={useremail:useremail,password,password};as var data={useremail:useremail,password:password} 你参考过js文件吗?嗨,你缩小了你的文件了吗?
'use strict';
function dataService($http) {
function UserLogin(postUrl, data) {
return $http({
method: "POST",
url: post_url,
data: data
});
}
var data = { "UserLogin": UserLogin};
return data;
}
dataService.$inject = ["$http"];
app.factory('ShowService', dataService);