我不明白为什么$ scope在我的LoginGuideCtrl控制器中不起作用。我尝试点击登录按钮,并显示<p>
新数据,但$ scope未更新......
别忘了我正在努力实现模块化设计。
我有以下代码:
var guides = angular.module('main.guides', ['ui.router']).config(function ($stateProvider) {
$stateProvider.
state('guides.login', {
url: '/login',
templateUrl: 'modules/guides/views/login.html',
controller: 'LoginGuideCtrl'
}).
...
state('guides.mobile', {
url: '/web',
template: '<div>guildes mobile</div>',
controller: 'ListCtrl'
});
});
var guides = angular.module('main.guides');
guides.controller('IndexCtrl', function() {
console.log('Index');
})
.controller('LoginGuideCtrl', function($scope) {
console.log('feck');
$scope.checkLogin = function(){
$scope.message = "Welcome "+$scope.name+"!"
};
})
.controller('ListCtrl', function() {
console.log('List');
})
<div class="form-group col-sm-2">
<label for="usr">Name:</label>
<input type="text" class="form-control" id="usr" ng-model="name">
</div>
<div class="form-group col-sm-2">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" ng-model="password">
</div>
<button type="button" class="btn btn-default" ng-click="checkLogin()">Login</button>
<p ng-model="message"></p>
答案 0 :(得分:1)
ng-model
与<input
&gt;一起使用用于通过双向绑定模型值来捕获用户输入的标记。
由于<p>
代码不会收集用户输入,因此无法使用ng-model
。相反,只需使用大括号进行单向绑定:
<p>{{message}}</p>