Angularjs——使用指令加载或解析数据

Angularjs——使用指令加载或解析数据,angularjs,angularjs-directive,angularjs-routing,angularjs-resource,Angularjs,Angularjs Directive,Angularjs Routing,Angularjs Resource,我正在开发一个大型移动应用程序,我遇到了一个争论。目前,我已将各种RESTAPI的资源连接到一个指令中,该指令随后将数据加载到该范围中 使用angularjs更好的做法是在指令中注入来自资源的数据,还是利用RouteProvider配置上的resolve属性 编辑 指令: angular.module('categories') .directive( 'Category', [function() { return { restrict: '

我正在开发一个大型移动应用程序,我遇到了一个争论。目前,我已将各种RESTAPI的资源连接到一个指令中,该指令随后将数据加载到该范围中

使用angularjs更好的做法是在指令中注入来自资源的数据,还是利用RouteProvider配置上的resolve属性

编辑

指令:

angular.module('categories')

    .directive( 'Category', [function() { 
        return {
            restrict: 'EA',
            priority: 1000,
            controller: ['$scope', '$attrs', '$log', 'CategoryFactory', function($scope, $attrs, $log, CategoryFactory) {
                var categoryObject = {};
                var item = $scope.$eval($attrs.ppdCategory);
                if( item !== "" && ! isNaN(parseInt(item, 10)) ) {
                    categoryObject.categoryId = item;
                }

                var $promise = CategoryFactory.get(categoryObject).$promise;
                $promise
                    .then( function( result ) {
                        $scope.childCategories = result.response.childCategories;
                        $scope.category = result.response.category;
                    })
                    .catch( function( error ) {
                        $log.error( "An error ocurred while fetching categories" + error );
                    });
             }]
        };
    }]);
控制器:

.config([ '$routeProvider', function($routeProvider) {
    $routeProvider
        .when( '/browse-aisles', {
            reloadOnSearch: false,

            controller: 'CategoryController',

            // this will eventually be a function that
            // manages the switching of the mobile, tablet,
            // and full site templates
            templateUrl: 'partials/pages/browse/browse_aisles.html'
        })
        .when( '/browse-aisles/:categories*', {
            reloadOnSearch: false,

            controller: 'CategoryController',

            // this will eventually be a function that
            // manages the switching of the mobile, tablet,
            // and full site templates
            templateUrl: 'partials/pages/browse/browse_aisles.html'
        });
}])
.controller( 'CategoryController', [ '$scope', '$routeParams', 'keyedRouteService', 'SharedProperties', 'BROWSE_PARAMS', function( $scope, $routeParams, keyedRouteService, SharedProperties, BROWSE_PARAMS ) {

        var categoryParams = typeof $routeParams.categories === 'undefined' ? "" : $routeParams.categories;
        var params = keyedRouteService.getKeyedArray( "categories//" + categoryParams );
        $scope.params = SharedProperties.setProperty(BROWSE_PARAMS, params );

        $scope.$emit('loadSubHeader', 'partials/pages/browse/browse_aisles_subheader.html');

        var baseUrl = "/browse-aisles/";
        for( var category in $scope.params.categories ) {
            if( $scope.params.categories[category] !== "" ) {
                baseUrl += "categories/" + $scope.params.categories[category] + "/";
            }
        }
        $scope.baseCategoryUrl = baseUrl;

    }]);
解析将解析以下格式的url:
/浏览走道/categories/123/categories/1234/categories/2444/products/233

你所说的“连接到”到底是什么意思?想分享一些示例代码吗?@MattWay我添加了一些代码示例。