2013-07-15 3 views
0

나는이 변화되지 않는 이유를 잘 모르겠어요 때 바인드되는 오브젝트 변경 :각도가 업데이트되지 않습니까?

내 HTML :

<div id="account-info" ng-controller="AuthenticateCtrl"> 
    <h5>Account: </h5> 
    {{account}} 
</div> 
<div ng-controller="AuthenticateCtrl"> 
    <div modal="shouldBeOpen" options="opts"> 
     <div class="modal-header"> 
      <h3>Select your account</h3> 
     </div> 
     <div class="modal-body"> 
      <div class="account-btn" ng-repeat="item in items" ng-click="close(item)"> 
       {{item}} 
      </div> 
     </div> 
    </div> 
</div> 

내 자바 스크립트 : 항상 아무것도 표시되지 않습니다 어떤 이유

var AuthenticateCtrl = function ($scope) { 
    $scope.account= ""; 

    $scope.open = function() { 
     $scope.shouldBeOpen = true; 
    }; 

    $scope.close = function(item) { 
     if (item) { 
      $scope.shouldBeOpen = false; 
      $scope.account= item; 
     } 
    }; 
} 

, 또는 $ scope.account = "ANY STRING"을 설정하면 "ANY STRING"이 표시되지만 close 함수가 호출되면 업데이트되지 않습니다.

+1

어디에서 가까이 왔는지 또는 어떤 항목인지 표시하지 않습니다. 또한 항상 모델을 사용하는 모범 사례를 따라야합니다. HTML에서 참조에. – shaunhusain

+1

그래서 ... close 함수는 어떻게 호출됩니까? – robertklep

+0

죄송합니다. 모달 호출 닫기를 포함하도록 편집되었습니다. – Alex

답변

3

좋아, 바이올린 시도. 먼저 동일한 기능을 가리키는 2 개의 ng 컨트롤러 지시문이 있습니다. 두 번째로 나는 여기의 도메인을 정말로 이해하지 못한다. 그러나 나는 이것이 당신이 필요로하는 것이라고 생각한다. Heres a fiddle.

<div ng-controller="AuthenticateCtrl"> 
<div id="account-info"> 
    <h5>Account: </h5> 
    {{account.name}} 
</div> 
<div> 
    <div modal="shouldBeOpen" options="opts"> 
     <div class="modal-header"> 
      <h3>Select your account</h3> 
     </div> 
     <div class="modal-body"> 
      <div class="account-btn" ng-repeat="item in items" ng-click="close(item)"> 
       {{item.name}} 
      </div> 
     </div> 
    </div> 
</div> 
</div> 

<script> 
var myApp = angular.module('myApp',[]); 

var AuthenticateCtrl = function ($scope) { 

    $scope.opts = {}; 
    $scope.account = {}; 

    $scope.items = [ 
     {'name':'one'}, 
     {'name':'two'} 
    ]; 

    $scope.open = function() { 
     $scope.shouldBeOpen = true; 
    }; 

    $scope.close = function(item) { 
     if (item) { 
      $scope.shouldBeOpen = false; 
      $scope.account= item; 
     } 
    }; 
} 
</script> 
+0

두 코드가 같은 컨트롤러를 가리키는 두 개의 별도 div가 있는데, 일단 코드를 분리하면 코드가 그대로 작동합니다. 감사! (또한 내 모달 작품 독서의 독립적 인 작업 .. 나는 처음부터 그들을 결합해야 오른쪽 방향으로 차기에 대한 감사합니다 하하) – Alex

관련 문제