Javascript ng click未使用factory类触发

Javascript ng click未使用factory类触发,javascript,angularjs,factory,Javascript,Angularjs,Factory,我是新来安格拉斯的。输入用户名和密码并单击“登录”按钮后,以下代码不会执行。登录应该执行登录方法并填充person数据绑定对象。有人知道他为什么不开枪吗?谢谢 工厂文件 'use strict'; var usermodule = angular.module('retrieveBasicUserInfo', []) .factory('basicUserInfo', function($http) { var credentials = { username: ''

我是新来安格拉斯的。输入用户名和密码并单击“登录”按钮后,以下代码不会执行。登录应该执行登录方法并填充person数据绑定对象。有人知道他为什么不开枪吗?谢谢

工厂文件

'use strict';

var usermodule = angular.module('retrieveBasicUserInfo', [])
.factory('basicUserInfo', function($http) {

    var credentials = {
        username: '',
        password: ''
    };
    var person = "";

    $http.defaults.useXDomain = true;

    var getBasicUserInfo = function (credentials) {
        var inputdata = { "Logon": credentials.username, "Pass": credentials.password};
        $http.post('http://localhost:23034/api/wmsusers/login',JSON.stringify(inputdata),
           {
               headers: {
                   'Access-Control-Allow-Origin' : '*',
                   'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, PUT',
                   'Content-Type': 'application/json',
                   'Accept': 'application/json'
               }
           }).success(function (inputdata) {
               person = inputdata[0];
           });
    };

    return {
        person: getBasicUserInfo
    };
});
JavaScript文件

'use strict';

var usermodule = angular.module('wms', ['retrieveBasicUserInfo'])
    .controller('userAuthentication', ['basicUserInfo', function ($scope, basicUserInfo) {
        $scope.credentials = {
            username: '',
            password: ''
        };
        $scope.login = function (credentials) {
            console.log(credentials)
            $scope.person = basicUserInfo.getBasicUserInfo(credentials);
        }
    }]);
HTML文件

<div data-ng-controller="userAuthentication">
<div class="login-panel">
    <p>Please complete the following form and click Login to continue:</p>
    <form name="loginForm" data-ng-submit="login(credentials)" novalidate>

        <label for="username">Username:</label>
        <input type="text" id="username"
               data-ng-model="credentials.username">

        <label for="password">Password:</label>
        <input type="password" id="password"
               data-ng-model="credentials.password">

        <button type="submit">Login</button>

    </form>
</div>
<br>
    <ul data-ng-model="$parent.person">
        <li>Name: {{person.Name}}</li>
        <li>Associate Id: {{person.Empid}}</li>
        <li>Access Level: {{person.Access}}</li>
    </ul>

请填写以下表格,然后单击“登录”继续:

用户名: 密码: 登录
  • 姓名:{{person.Name}
  • 关联Id:{{person.Empid}
  • 访问级别:{{person.Access}
请看这里

工厂返回具有person属性的对象,并且在控制器中尝试访问getBasicUserInfo,以便将person转换为getBasicUserInfo。您在控制器定义中遗漏了$scope

改变这个

return {
        person: getBasicUserInfo
    };


)

多谢各位。在你的帮助下,它工作得非常好。
return {
        getBasicUserInfo: getBasicUserInfo
    };
var usermodule = angular.module('wms', ['retrieveBasicUserInfo'])
//and you missed $scope in line bellow after bracket
    .controller('userAuthentication', ['$scope','basicUserInfo', function ($scope, basicUserInfo) {
        $scope.credentials = {
            username: '',
            password: ''
        };
        $scope.login = function (credentials) {
            console.log(credentials)
            $scope.person = basicUserInfo.getBasicUserInfo(credentials);
        }
    }])