我们正在使用ng-resource从REST端点引入对象。 假设我们有一个Category页面,您可以在其中编辑该类别中的Item。 当控制器需要对象(这里是Category对象和Item对象)时,我们使用解析器在我们注入这些对象之前延迟Controller实例化,这是基于我们从当前路由获得的id-s。代码非常容易理解:
urls.js:
$routeProvider
.when('/categories/:categoryId/:itemId', {
controller: 'itemController',
resolve: Resolvers.itemController,
templateUrl: '/templates/edit-item.html',
})
item.js:
Resolvers.itemController = {
item: ['$route', 'ItemResource', function ($route, ItemResource) {
return ItemResource.get({id: $route.current.params.itemId}).$promise
}],
category: ['$route', 'CategoryResource', function ($route, CategoryResource) {
return CategoryResource.get({id: $route.current.params.categoryId}).$promise
}]
}
angular.module('controllers')
.controller('itemController',
['$scope', 'item', 'category',
function($scope, category, item) {
......
}])
我们正面临着对该控制器进行单元测试的困难。这意味着我们需要使用存根注入类别和项目。
这是我们应该做的,这是一个好的轨道吗?我们还缺少哪些其他行业选择?谢谢!