angularjs和ui-router - 控制器不工作

时间:2016-01-22 01:17:26

标签: angularjs angular-ui-router

The full source code.

我不明白为什么$ scope在我的LoginGuideCtrl控制器中不起作用。我尝试点击登录按钮,并显示<p>新数据,但$ scope未更新......

别忘了我正在努力实现模块化设计。

我有以下代码:

guides.js

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'
  });
});

controller.js

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');
})

的login.html

<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>

1 个答案:

答案 0 :(得分:1)

ng-model<input&gt;一起使用用于通过双向绑定模型值来捕获用户输入的标记。

由于<p>代码不会收集用户输入,因此无法使用ng-model。相反,只需使用大括号进行单向绑定:

<p>{{message}}</p>