2015-08-16 66 views
1

我有一個很奇怪的問題。出於某種原因,我的ng模型僅限於嵌套相同的控制器兩次。這裏是我的代碼: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作爲控制器,它顯示視圖頁面上「你好」這意味着它可以顯示測試(這意味着連接到控制器),但是當我點擊我的提交按鈕時,控制檯日誌是未定義的。它只適用於如果我的控制器被召回像這樣:

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

我有ng-app在我的html和正確的頭標記在我的代碼以及。 任何想法?

+0

這與範圍原型繼承('ng-view'創建一個子範圍)和需要總是在綁定中使用一個點'.'. 'ng-model =「obj.name」' - 換句話說,總是綁定到一個對象的屬性,而不僅僅是屬性的範圍。欲瞭解更多信息:http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs/14049482#14049482 –

回答

0

我覺得這是你如何解決這個問題,通過聲明路線中的控制器

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

,您可以訪問$scope.name

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

沒有引導/視圖嵌套mainController

相關問題