2
我正在用Angular製作我的第一個武器。我無法理解來處理模型數據修改,並將其存儲在數據庫中,例如,最好的辦法:Angular:保持模型數據與數據庫同步
在控制器:
$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提供了一些方法來訪問當前「單擊」項來更新道具(在這種情況下的狀態)?
希望我很清楚。 謝謝。
編輯:因此,根據瓊斯博士的評論,我寫這個使用下劃線。
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
正確 - 它確實取決於應用程序的構建環境以及刷新數據的成本。所以大多數情況下,您可以在保存後刷新數據。但是,如果調用數據的速度較慢,則可以使用新信息更新客戶端模型。通常情況下,如果更新模型,我會選擇從服務器進行刷新,這樣我可以確定在更新後我擁有最新的數據。 –