2017-03-15 82 views
1

我收到錯誤controller.js角JS - 不是函數

controller.js

angular.module('myApp', ['ngRoute', 'ui.router']).controller('authCtl', ["$scope", "$rootScope", "loginService", function($scope, $rootScope, loginService) { 
    $rootScope.bodyClass = "focusedform"; 
    $scope.submitForm = function() { 
    loginService.userAuth($scope.username, $scope.password); 
    } 
}]); 

factory.js

angular.module('myApp').factory('loginService', ["$http", "$q", function($http, $q) { 
    userFactory = {}; 
    userAuth = function(username, password) { 
    console.log(username + '' + password); 
    }; 
    return true; 
}]); 

enter image description here

+1

你返回從登錄服務真。使用附加的userAuth函數返回一個對象或其他東西。 – Phix

回答

5

你沒」在工廠返回你的對象。

您必須將您的方法變量附加到對象中並從工廠返回以便從控制器訪問。

嘗試這樣

angular.module('warApp').factory('loginService', ["$http", "$q", function($http, $q) { 
    var userFactory = {}; 
    userFactory.userAuth = function(username, password) { 
    console.log(username + '' + password); 
    }; 
    return userFactory; 
}]); 

或嘗試像這樣更好的視野

angular.module('warApp').factory('loginService', ["$http", "$q", function($http, $q) { 
    var userFactory = { 
    userAuth: userAuth 
    } 
    return userFactory; 
    function userAuth(username, password) { 
    console.log(username + '' + password); 
    } 
}]); 
+0

這是行得通的。非常感謝你。 –