2014-10-17 1 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 не обновляется и, следовательно, не отображается результат обряда во всплывающем окне.

Как исправить это?

Thanks

ответ

1

Я бы использовал для этого изолированный участок. например:

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

* это принимает "ТПС" значение из области видимости контроллера

и в директиве:

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 mix) и должен работать.

+0

Спасибо :) Это не решило мою проблему, но помогло мне лучше понять :) –

Смежные вопросы