使用angular.copy响应更新客户端对象是否正确?

时间:2015-06-27 19:19:33

标签: javascript jquery ajax angularjs

我有一个导入功能客户端页面,显示“保存按钮”或“保存标签”取决于实体的ID。

enter image description here

这是我的save函数:它的响应是在服务器端创建的,存储在数据库中并在该对象之后选择(在save之后我想显示存储的值,哪一个应该已经有{{1} (auto_increment PK)):

enter image description here

所以,在我保存订单并获得存储值的响应之后,我需要更新作为参数顺序传递(设置顺序的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'));
        });
}

0 个答案:

没有答案