2014-10-17 69 views
0

我想在一個表中的Angular.js中做一個彈出式窗口,其中有一個選項可以點擊一行中的特定單元格-向上。以下是代碼片段。Angular.JS:數據沒有得到更新的Angular for Popups

HTML代碼

<table class="table table-bordered"> 
     <tr><th>Number</th><th>Comment</th></tr><tr ng-repeat="col in Data|filter:search1"><td>{{col.cd}}</td><td><div ng-controller="igCtrl"> 

    <a href="#" ng-click="addComment(col.cd)">Comment</a> 

    <ig-comment></ig-comment> 
</div></td></tr></table> 

控制器

function igCtrl($scope) { 
$scope.addComment = function (col) { 
$scope.cdn=""; 

       $scope.cdn = col; 



console.log("testing"+$scope.cdn); 
$scope.check = true; 
if ($scope.check) { 
       $("#comment").modal('show'); 

      }; 

};} 

指令

app.directive('igComment', function() { 

return { 
    restrict: 'E', 
    replace: true, 
template:'<div class="row"> 
<div class="modal fade" id="comment" aria-hidden = "true" > 
    <div class = "modal-dialog" style="width:300px;height:600px;"> 
      <form class="form-horizontal" name="form" ng-submit = "submit()" novalidate="novalidate"> 
       <div class = "modal-content" > 
        <div class = "modal-header"> 
         Data is :{{cdn}}  

         <input ng-disabled="form.$invalid" type="submit" class="btn btn-primary" id="submit" ng-click="submit()" value="Submit"></input > 
         <input type="button" class="btn btn-primary" data-dismiss="modal" value="Cancel" ng-click="cancel()"></input> 
        </div> 
       </div > 
      </form> 
     </div > 
    </div> 
</div>' 
}; 
}); 

數據對於該表來自數據庫。控制器中的變量cdn正在更新,並且控制器中的console.log語句提供了正確的輸出。

但是指令中的cdn沒有得到更新,因此不會在彈出窗口顯示rite結果。

如何糾正?

謝謝

回答

1

我會爲此使用一個隔離的範圍。 如:

<ig-comment cdn="cdn"></ig-comment> 

*這需要的 「CDN」 值從控制器的範圍

,並在指令:

return { 
     restrict: 'E', 
     replace: true, 
     scope: { cdn: '=' } // this assigns the "cdn" from the directive attribute above 
          // to the directive isolated scope (under the same name) 
     ... 

其餘似乎罰款(忽略不幸jQuery混合),應該工作。

+0

謝謝:)它沒有解決我的問題,但幫助我更好的理解:) – 2014-10-18 05:25:56