2016-04-07 27 views
1

Aynı soruyu soruyorum ama tam olarak bu soruyu neden tekrar doğru koda eklediğimi bulamadım. Kapsam değiştiğinde görünümü güncelle

<table class="striped responsive-table"> 
     <thead> 
      <tr> 
       <th data-field="id"> 
        <p> 
         <input type="checkbox" id="selectAll" ng-change="selectAll(curStatus)" ng-model="selectAllRecords"/> 
         <label for="selectAll">All</label> 
        </p> 
       </th> 
       <th>BASE TEMPLATE&</th> 
       <th>PROCESS ELEMENT </th> 
       <th>SCREEN NAME</th> 
       <th>Action</th> 
      </tr> 
     </thead> 

     <tbody> 
      <tr ng-repeat="record in records | orderBy:sortType:sortReverse | filter : searchItem track by $index"> 
      <td data-field="id"> 
       <p> 
        <input type="checkbox" id="{{record.id}}" ng-model="record.Selected"/> 
        <label for="{{record.id}}"></label> 
       </p> 
      </td> 
      <td>{{record.baseTemplate}}</td> 
      <td>{{record.processElement}}</td> 
      <td>{{record.screenName}}</td> 
      <td> 
       <i class="material-icons tooltipped" data-position="top" data-delay="50" data-tooltip="Edit Record">mode_edit</i> 
       <i class="material-icons tooltipped" data-position="top" data-delay="50" data-tooltip="Delete Record" style="color : #ee6e73">delete</i></td> 
      </tr> 
     </tbody> 
     </table> 

bu

benim görünümüdür

Kontrolör

$scope.sortType  = 'baseTemplate'; // set the default sort type 
$scope.sortReverse = false; 
$scope.selectAllRecords = false; 
$scope.records = [ 
    { 
     id : "record1", 
     baseTemplate : "A", 
     processElement : "PE1", 
     screenName : "normal view", 
    },{ 
     id : "record2", 
     baseTemplate : "B", 
     processElement : "PE2", 
     screenName : "detail view" 
    },{ 
     id : "record3", 
     baseTemplate : "C", 
     processElement : "PE3", 
     screenName : "list view" 
    } 
]; 
$scope.addNew = function(){ 
    var id = $scope.records.length + 1; 
    id = 'record' + id; 
    $scope.records.push({ 
     id : id, 
     baseTemplate : 'A', 
     processElement : 'PE5', 
     screenName : 'ACTION_BAR' 
    }); 
    console.log(JSON.stringify($scope.records)); 
}; 

yeni rekor scope.records $ ilave zaman değişiklikleri görebilirsiniz. Ama benim görüşüme yansımamış. Herhangi bir yardım, büyük bir destek olabilirdi.

şimdiden teşekkürler.

+0

bir keman/plunkr kodunuzu koyabilir misin? İlk bakışta yanlış bir şey göremiyorum –

+0

'addNew' işlevinin sonunda' $ scope.apply() 'i çağırmayı denediniz mi? –

+0

evet hata alıyorum devam ediyor $ digest devam ediyor –

cevap

0

Sizin kodunuz bana iyi görünüyor. Tüm yaptığım, addNew işlevini çağıran bir düğme eklemek oldu. Yeni öğe görünümde yansıtılıyor.

angular.module('app', []).controller('ctrl', function($scope) { 
 
    $scope.sortType = 'baseTemplate'; // set the default sort type 
 
    $scope.sortReverse = false; 
 
    $scope.selectAllRecords = false; 
 
    $scope.records = [{ 
 
    id: "record1", 
 
    baseTemplate: "A", 
 
    processElement: "PE1", 
 
    screenName: "normal view", 
 
    }, { 
 
    id: "record2", 
 
    baseTemplate: "B", 
 
    processElement: "PE2", 
 
    screenName: "detail view" 
 
    }, { 
 
    id: "record3", 
 
    baseTemplate: "C", 
 
    processElement: "PE3", 
 
    screenName: "list view" 
 
    }]; 
 
    $scope.addNew = function() { 
 
    var id = $scope.records.length + 1; 
 
    id = 'record' + id; 
 
    $scope.records.push({ 
 
     id: id, 
 
     baseTemplate: 'A', 
 
     processElement: 'PE5', 
 
     screenName: 'ACTION_BAR' 
 
    }); 
 
    console.log(JSON.stringify($scope.records)); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <table class="striped responsive-table"> 
 
    <thead> 
 
     <tr> 
 
     <th data-field="id"> 
 
      <p> 
 
      <input type="checkbox" id="selectAll" ng-change="selectAll(curStatus)" ng-model="selectAllRecords" /> 
 
      <label for="selectAll">All</label> 
 
      </p> 
 
     </th> 
 
     <th>BASE TEMPLATE&</th> 
 
     <th>PROCESS ELEMENT</th> 
 
     <th>SCREEN NAME</th> 
 
     <th>Action</th> 
 
     </tr> 
 
    </thead> 
 

 
    <tbody> 
 
     <tr ng-repeat="record in records | orderBy:sortType:sortReverse | filter : searchItem track by $index"> 
 
     <td data-field="id"> 
 
      <p> 
 
      <input type="checkbox" id="{{record.id}}" ng-model="record.Selected" /> 
 
      <label for="{{record.id}}"></label> 
 
      </p> 
 
     </td> 
 
     <td>{{record.baseTemplate}}</td> 
 
     <td>{{record.processElement}}</td> 
 
     <td>{{record.screenName}}</td> 
 
     <td> 
 
      <i class="material-icons tooltipped" data-position="top" data-delay="50" data-tooltip="Edit Record">mode_edit</i> 
 
      <i class="material-icons tooltipped" data-position="top" data-delay="50" data-tooltip="Delete Record" style="color : #ee6e73">delete</i> 
 
     </td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
    <button ng-click="addNew()">add new</button> 
 
</div>

+0

Zaten addNew() çağıran düğüme sahibim. Konseptte görebileceğim $ scope.records'taki değeri de ekliyor. Ancak bunu kendi görüşümde göremiyorum. –

+0

Kod snippet'imi çalıştırırsanız, yeni öğe görünümde açıkça eklenir. Sorunun nerede olduğunu görmüyorum? – fikkatra

+0

Cevabınız için teşekkür ederiz .. Ama sorun çözülmedi. Neden çalışmadığını bilmiyorum. TAG tablonun hemen altındaki düğmeyi eklemek, o kadar iyi çalışıyor. ama ben gerçekten değer girdiğim bir MODAL açın tablo MODU üzerinde bir düğme var MODAL sonra addNew() çağırıyor sonra çalışmıyor –

İlgili konular