【问题标题】:What is the best practice for listing/editing items in Angular.js?在 Angularjs 中列出/编辑项目的最佳实践是什么?
【发布时间】:2016-02-23 16:34:18
【问题描述】:

我在员工视图中有一个员工列表,我可以在其中添加新员工和删除现有员工。

为了列出员工,我在视图中使用了一个 ng-repeat,我可以通过在控制器中调用我的拼接方法并使用传递的 Id 和索引值来删除特定的员工。

对于编辑,我使用 angular(copy) 然后更新 DB 中的编辑值。关于添加新员工、编辑和删除员工,一切都很好。

我在单个视图中编写了所有代码 - 单个 html 并且它的大小太大。我使用 ng-show / ng-hide 来执行添加/编辑操作。

我想将代码分解为几个视图以添加和编辑员工信息,并且我对员工模型中的所有 CRUD 操作使用相同的 EmployeeController。

如果我将employee.html 拆分为多个视图,那么我必须初始化控制器并最终丢失数据。我可以在这里使用 $rootScope 来保存我的数据,但它会污染我的结构,因为全局是一件坏事。

请建议我处理这种情况的最佳做法。提前致谢!

这是我的代码,

// To get all employee instances
$scope.getEmpList = function(){
    $scope.employees = EmployeeFactory.getEmpList();
}

// Update employee details
$scope.editEmp = function(empObj){
    $scope.updatedEmpObj = angular.copy(empObj);
    EmployeeFactory.updateEmployee($scope.updatedEmpObj);
}

【问题讨论】:

  • localStorage、indexdb、服务器端数据库。有无数种选择。
  • 请向我推荐任何 Fiddle 示例或相关的 stackoverflow 解决方案?
  • 这里不是问这种开放式问题的地方。
  • 非常感谢您的好话,先生!

标签: javascript angularjs


【解决方案1】:

您应该使用服务来保存数据并将该服务注入到您需要数据的每个控制器中。服务是单例的,并且只被实例化一次。

更多详情请见Using angular service to share data between controllers

【讨论】:

  • 非常感谢先生。真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 2021-05-22
  • 2021-06-14
  • 1970-01-01
  • 2011-07-28
相关资源
最近更新 更多