Javascript 控制器中的AngularJS工厂获取错误

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

我使用下面的代码来使用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 = 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);