2017-02-21 13 views
0

テーブルフッタを自動更新しようとしていますが、$ scope値が更新されたときにng-repeatや正規の二重ブレークさえも自動バインドされないようです。テーブルバインディングと角度付き

https://jsfiddle.net/r0pk793e/3/

具体的には、私は値$ scope.helloを設定し、それをインクリメントしていたときにテーブルの更新(ユーザーが表のセル内の値を変更したとき)。値の変化を見ることはできますが、HTMLに再バインドされることはありません。

console.log($scope.hello);

var doUpdate = function() { 
    var items = []; 

    for (var c = 0; c < headings.length; c++) { 
     if (typeof (hot.getDataAtCell(0, c)) == "number") { 
     var levelTotal = 0; 
     var i = 0; 

     do { 
      levelTotal += hot.getDataAtCell(i, c); 
      i++; 
     } while (hot.getDataAtCell(i, c) != null); 

     items.push(levelTotal); 
     } 
     else 
     { 
     items.push(' '); 
     } 
    } 

    $scope.items = items; 
    $scope.hello = $scope.hello + 1; 
    console.log($scope.hello); 
    } 
+0

あなたの '$ scope.hello'は実際にはコンソールに表示されても変更されますが、それはhtmlの – nivas

+0

にレンダリングされません。何故なの? –

+0

doUpdate関数は$ scopeにアタッチされていないため、angularはその変更を認識していないため、ここでは変更されていません。https://jsfiddle.net/r0pk793e/8/ – nivas

答えて

2

によって示されるように

<table class="tg"> 
    <tr> 
     <td class="tg-yw4l" ng-repeat="item in items">{{item}}</td> 
    </tr> 
    </table> 

の$ scope.helloは、変更を行います...私は、この表には次の関数によって更新されなければならないと考えているが、そうではありませんあなたのフィドルをテストしたら、すべてが更新されました

enter image description here とにかくこれがまだ動作していない場合は、$ scope(); $ apply();を呼び出してください。あなたの値を更新すると、魔法が起こるのが見えます。

+1

ありがとう - $ apply()が必要でした。私は、更新がhandontableイベントリスナー内で起こっているので、私は思う。私が実際に探している更新時間は、テーブルの内容がユーザーによって変更されたときです。 –

関連する問題