我有一个导入功能客户端页面,显示“保存按钮”或“保存标签”取决于实体的ID。
这是我的save
函数:它的响应是在服务器端创建的,存储在数据库中并在该对象之后选择(在save之后我想显示存储的值,哪一个应该已经有{{1} (auto_increment PK)):
所以,在我保存订单并获得存储值的响应之后,我需要更新作为参数顺序传递(设置顺序的id,以便保存按钮不可见并显示id
标签)。
我是使用saved
完成的,但它是否正确,还有其他做法是应用和更新响应中的angular.copy(entity, order)
对象。
代码在这里:
view's
Js功能;
<tbody>
<tr ng-repeat="order in model.importedOrders">
<td ng-bind="$index + 1"></td>
<td ng-bind="order.externalOrderId"></td>
<td ng-bind="order.customerFullName"></td>
<td ng-bind="order.customerAddress"></td>
<td ng-bind="order.customerPhone"></td>
<td ng-bind="order.orderItems[0].item.id"></td>
<td ng-bind="order.orderItems[0].purchasePrice.format('$n')" nowrap></td>
<td ng-bind="order.orderItems[0].sellingPrice.format('$n')" nowrap></td>
<td ng-bind="order.vendor.id"></td>
<td ng-bind="order.manager.id"></td>
<td ng-bind="order.driver.id"></td>
<td ng-bind="order.deliveryPrice.format('$n')" nowrap></td>
<td ng-bind="order.note"></td>
<td>
<a ng-if="!order.id"
ng-click="actions.save(order)"
href="#"
class="btn btn-xs btn-primary">Сохранить</a>
<span ng-if="order.id"
class="label label-success">Сохранено</span>
</td>
</tr>
</tbody>
一个小帮手功能:
save: function(order) {
order$.save({ entity: order }).then(
function(msg) {
var entity = coalesce(msg, 'data.order');
angular.copy(entity, order);
}, function(msg) {
toaster$.pop('error', 'Ошибка на этапе сохранения заказа', coalesce(msg, 'data.description'));
});
}