私は最初の武器を角型にしています。私は、モデル内のデータの変更を処理するための最良の方法を理解し、データベースに格納し、例えばことができません。角度:モデルデータをデータベースと同期させてください
コントローラで:
$scope.items = [
{ id: 1, status: 0, data: 'Foo Item' }
{ id: 2, status: 0, data: 'Foooo' }
{ id: 3, status: 1, data: 'OooItem' }
];
ビューで:
<tr ng-repeat="item in items | orderBy:'-id'">
<td>{{item.id}}</td>
<td>{{item.data}}</td>
<td>
<div class="btn-group" role="group">
<button type="button" class="btn btn-default" ng-click="status(item.id, 1)">Acept</button>
<button type="button" class="btn btn-default" ng-click="status(item.id, 2)">Reject</button>
</div>
</td>
</tr>
私はに何をすべきアイテムステータスを1または2に更新しますか?サーバーを呼び出して、新しいモデルを取得しますか?モデルデータをJSで更新して呼び出しますか?自動化する方法はありますか? Angularは、現在の「クリックされた」アイテムにアクセスして小道具(この場合はステータス)を更新するいくつかの方法を提供しますか?
希望しました。おかげさまで
EDIT: Dr Jonesのコメントに基づいて、私はアンダースコアを使用してこれを書いています。
function status(id, status) {
$http.put().then()....
//after success response, update the model
item = _.find($scope.items, function (rw) {
return rw.id == id
});
item.status = status;
}
これは有効かつ正しい方法ですか?
ありがとうございます!しかし、私は余分なフレームワークを使用しないと仮定します。ですから、私はAPIを呼び出し、更新された操作を実行し、UIで応答を得る必要があります。私の関心事は次のとおりです。サーバーから受け取ったIDでモデル内のアイテムを探し、このデータを同期する必要があります。 – mauriblint
修正 - 実際には、アプリの構築方法やデータを更新するのに費やされる費用の状況によって異なります。ほとんどの場合、保存後にデータをリフレッシュすることができます。ただし、データの呼び出しが遅い場合は、クライアントサイドモデルを新しい情報で更新するだけで済みます。通常、モデルが更新されている場合は、サーバーから更新することを選択します。更新後に最新のデータがあることを確認できます。 –