2015-02-09 60 views
4

我目前正在开发一个使用AngularJS的SPA应用程序,允许最终用户通过表单添加&编辑订单。使用AngularJS添加/编辑数据的最佳做法

我想知道的是什么被认为是确定应用程序是否在EditCreate状态的最佳做法?

例如,当我点击一个菜单项,显示'添加新订单'时,我希望显示一个名为`order.html'的部分视图,其中所有输入栏位均为空白。如果可能的话,我还想在编辑订单时重新使用这个相同的视图,其中从正在编辑的当前订单预填充输入字段。

我需要使用service/factory对于这一点,有一个属性,以确定状态,例如:

angular.module('app') 
    .factory('orderService', ['$http', function($http) { 
     var state = { 
      addOrder: false, 
      order: { 
       orderRef: "", 
       orderDate: "" 
      } 
     }; 
    }]); 

然后,我可以根据编辑状态从相关控制器设置addOrder财产,以及作为addOrder: true时填写order属性与订单的详细信息。

我看了一下网络,不幸的是这样的例子似乎很少。

回答

1

我目前正在使用一项服务(DataRepo),它存储了您想要全局保留的所有数据。例如,您有一个input,用户可以在其中键入关于其顺序的一些旁注,如果他们导航回该站点,他们可能会再次看到他们的文本。

<input type="text" ng-model="DataRepo.orderNotes"> 

在你的控制器,你注入你的DataRepo服务并将其绑定到范围:

$scope.DataRepo = DataRepo; 

通过这样做,用户输入将被自动存储到DataRepo服务。

+0

该解决方案看起来正是我打算做的。所以基本上我可以在服务上创建一些方法,例如'addOrder()'将a​​ddOrder属性设置为'true'并擦除'order'对象;和'editOrder(order)'将把'addOrder'属性设置为'false',然后从'order'参数填充'order'属性? – Intrepid 2015-02-09 13:32:27

+0

当然,您可以使用整个对象和函数来填充此服务,以更好地处理数据。我只是想举一个我如何处理这个问题的简单例子。 – DonJuwe 2015-02-09 13:37:31

相关问题