将所需的ngResources注入控制器的最佳模式

时间:2015-04-17 08:32:05

标签: javascript angularjs ngroute

我们正在使用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) {
......
}])

我们正面临着对该控制器进行单元测试的困难。这意味着我们需要使用存根注入类别和项目。

这是我们应该做的,这是一个好的轨道吗?我们还缺少哪些其他行业选择?谢谢!

0 个答案:

没有答案