“ng-click”angularjs的异常行为

时间:2017-12-04 09:04:57

标签: javascript jquery angularjs html5

我正在尝试创建一个调用控制器中的函数的按钮。我的控制器是用VM调用的......

<md-content class="md-padding">
    <form name="loginForm">
        <md-input-container class="md-block">
            <label>Username</label>
            <input required name="username" ng-model="vm.user.username">
            <div ng-messages="loginForm.username.$error">
                <div ng-message="required">This is required.</div>
            </div>
        </md-input-container>
    </form>
    <md-card-actions layout="row" layout-align="end center">
        <md-button class="md-primary" ng-click="vm.userLogin(username)" ng-disabled="loginForm.$invalid">Login
        </md-button>

        <md-button class="md-primary md-raised" ng-click="registerme=true" >Register
        </md-button>
    </md-card-actions>
</md-content>

问题在于未调用的“userLogin”函数。 HTML部分的其余部分还有其他ng-click调用,如:

   <md-card-actions layout="row" layout-align="end center">
<md-button class="md-primary md-raised" ng-click="vm.submitUserData()" ng-disabled="userForm.$invalid">Submit
</md-button>

这很好用。 这些是控制器中调用的函数

function submitUserData() {
    alert(vm.user.username);
    // POST /users
    baseUsers.post(vm.user).then(function (resp,newUser) {
        var pref = vm.preferenze;
        // Ridirigo la navigazione alla pagina "recommendation" passando come parametri le raccomandazioni calcolate e l' id dell utente
        $state.go('form.recommendation',{recommendations:resp,userId: vm.user.id,preferences: pref,iteration: 1});
        }, function (){//resp)
        });
}

function userLogin(username) {
    alert("dbdbdb");
    alert(username);
}

我正试图弄清楚为什么它不会调用警报功能。我试图移动页面中的按钮,但没有任何改变。 感谢所有愿意帮助我的人。

1 个答案:

答案 0 :(得分:0)

语法简直让你感到困惑。如果您具有“控制器为”语法,请确保所有内部函数都是该控制器的一部分。

首先,您的函数vm.userLogin(username)应为vm.userLogin(vm.user.username)

其次,控制器中的函数应该用不同的方式编写:

vm.userLogin = function(username) {
    alert("dbdbdb");
    alert(username);
}

vm是您的范围分配,例如var vm = this;,但您可以将其替换为$scope.userLogin = function(username){...}