我正在尝试创建一个调用控制器中的函数的按钮。我的控制器是用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);
}
我正试图弄清楚为什么它不会调用警报功能。我试图移动页面中的按钮,但没有任何改变。 感谢所有愿意帮助我的人。
答案 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){...}