Angularjs——使用指令加载或解析数据
我正在开发一个大型移动应用程序,我遇到了一个争论。目前,我已将各种RESTAPI的资源连接到一个指令中,该指令随后将数据加载到该范围中 使用angularjs更好的做法是在指令中注入来自资源的数据,还是利用RouteProvider配置上的resolve属性 编辑 指令: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: '
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我添加了一些代码示例。