2017-02-13 3 views
0

Я использую следующий код, чтобы использовать завод и я получаю это error-AngularJS завод по ошибке контроллера ПОЛУЧИТЬ

Error: [$injector:undef] http://errors.angularjs.org/1.6.1/ $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 
    }) 
} 
} 
+0

Вы ссылаетесь на файлы js? – Sajeetharan

+0

Привет, вы минимизировали свои файлы? – PortePoisse

ответ

1

Вы упускаете return о вашей factory. Существует также опечатка на вашем data var с дополнительной запятой.

Вы должны сделать это так:

function dataService($http) { 
    var data = { 
    UserLogin: UserLogin 
    } 
    return data; 

    function UserLogin() { 
    //whatever 
    } 
} 
+0

сейчас работает! благодаря! –

-2

$scope Использование в контроллере вместо this.

app.controller("LoginController", ['$scope', 'ShowService', function ($scope, ShowService) { 


//function call when user submit the login form 
$scope.login = function (useremail, password) { 
    var data = {useremail:useremail, password,password}; 
    var url = "/php/user-login.php"; 
    ShowService.UserLogin(url,data); 
} 
}]); 
0

Кажется, вы забыли вернуть data переменную при создании 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); 
0

Пожалуйста, измените эту строку уага данных = {USEREMAIL: USEREMAIL, пароль, пароль}; как var data = {адрес электронной почты: адрес эл. Почты, пароль: пароль};

Смежные вопросы