2017-03-28 6 views
0

時間範囲を追加するページがあります。INSERT & SAVEはデータをAPIに、レスポンスセットデータをテーブルに送信します。しかし、問題は、私のデータが動的に表示されていないことです。私は変更を見るためにリフレッシュページが必要です。私は$watchを使用しようとしていますが、これは動作しません。ここに私のplunkerです。リフレッシュせずにDOM内で新しいデータを取得する

答えて

3

あなたは、いくつかのミスを犯した:全体のものを包んない

  1. <div ng-controller="TimepickerDemoCtrl">
  2. ng-submiturbanTimeRangeとしてng-click
  3. に変更されましたあなたは$watchCollection 代わりの$watch

外観を使用する必要があります配列です訂正時にvariant

+0

のthnxですが、私が働いて、ブートストラップplnkrを取り、私のコードでは、この作業正しいを自分のコードを追加しますので、これは私のミスですが、私は$ watchに問題があります。 INSERTボタンで、私はサーバーにデータを送信し、応答DOMが更新されていない、私はビューを更新する必要があり、更新後に新しいデータがここにあります。私は瞬時に更新したいと思うDOM – Arter

+0

あなたは 'urbanTimeRange'にどこに新しい要素を追加しますか?それを変更しないので '$ watch'は起動されません –

+0

INSERTボタンをクリックしてサーバにデータを送信し、工場でこのリンクを呼び出してデータ$ scope.urbanTimeRange = $ scope.urbanConfig.screen_intervalsを設定します。 – Arter

0

thnxから@Slava Utesinovへの出発点。これをどうやって作るのですか? まず、新しい時間間隔を追加するには、$httpでこれを使用します。まず、私は$scopeに新しいデータをプッシュすると、私は変更

また
$scope.urbanTimeRange.push(data); 
$scope.$watchCollection('urbanTimeRange', function (newValue, oldValue, scope) { 
}, true); 

、この$scope$watchた後、私は時間間隔を削除すると、私はspliceメソッドを使用して、変更の後$watch。ここではindexが表示され、$indexとng-repeatで選択した項目を追跡する私のHTMLからindexが得られます。

これはコントローラです:

$scope.urbanTimeRange.splice(index, 1); 
$scope.$watchCollection('urbanTimeRange', function (newValue, oldValue, scope) { 
}); 

これは、HTML

<tr ng-repeat='timeRange in urbanTimeRange track by $index'> 
          <td>{{timeRange.from_time | date:'shortTime'}}</td> 
          <td>{{timeRange.to_time | date:'shortTime'}}</td> 
          <td><angular-smartconfirm confirm="removeRow(timeRange.id, $index)"><i class="fa fa-close"></i></angular-smartconfirm></td> 
         </tr> 
関連する問題