只有嵌套了同一个控制器,ng-model才有效?

时间:2015-08-16 01:14:30

标签: javascript angularjs angular-ngmodel

我有一个非常奇怪的问题。出于某种原因,我的ng模型只有在我将同一个控制器嵌套两次时才会受到限制。这是我的代码:

索引页:

bbmean_app.controller('mainController', function($scope, $location, mainFactory){
    $scope.test='hello';
    $scope.currentUser = {};


$scope.login = function(){
    console.log($scope.name)

}
<body>
     <div ng-controller='mainController'>
        <div ng-view =""></div>
    </div>
</body>

查看页面:

<form>
   {{test}}
    <p>Your name:<input type = 'text' ng-model='name' ></p>
    <button type = 'submit' ng-click ='login()'>Login</button>
</form>

所以我的所有视图都应该有一个mainController作为控制器,它在视图页面上显示'hello'意味着它可以显示测试(这意味着连接到控制器)但是当我单击我的提交按钮时,控制台日志是未定义的。它只有在我的控制器被召回时才有效:

<div ng-controller = 'mainController'>
    <form>
    {{test}}
    <p>Your name:<input type = 'text' ng-model='name' ></p>
    <button type = 'submit' ng-click ='login()'>Login</button>
    </form>
</div>

我的html周围有ng-app,我的代码中也有正确的头标记。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为这就是你解决这个问题的方法,

      .when('/', {
        templateUrl: 'js/views/index.html',
        replace: true,
        controller: 'mainController',
      })

通过在路线中声明控制器,您可以通过以下方式访问$scope.name

      $scope.login = function() {
        var name = $scope.name;
        console.log(name);
      };

没有在视图中引导/嵌套mainController

相关问题