在面包屑中显示当前类别名称(使用 angularJS)
Display current category name in breadcrumbs (using angularJS)
我正在努力让我的类别和供应商名称在面包屑上可见。
我正在使用 ng-breadcrumbs 模块 (https://github.com/ianwalter/ng-breadcrumbs)。
我想我在使 curCategory 和 curVendor 全局可访问时遇到了问题,但尝试了一些方法但无法使其工作。
这是我的 html:
<body ng-controller="mainController as main">
(...)
<ol class="breadcrumb">
<li ng-repeat="breadcrumb in breadcrumbs.get({'Category':curCategory,'Vendor': curVendor}) track by breadcrumb.path" ng-class="{ active: $last }">
<a ng-if="!$last" ng-href="#{{ breadcrumb.path }}" ng-bind="breadcrumb.label" class="margin-right-xs"></a>
<span ng-if="$last" ng-bind="breadcrumb.label"></span>
</li>
</ol>
我的路线:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'templates/pages/main.html',
label: 'Home'
}).
when('/:cat', {
templateUrl: 'templates/pages/category.html',
label: 'Category'
}).
when('/:cat/:ven', {
templateUrl: 'templates/pages/vendor.html',
label: 'Vendor'
}).
otherwise({
redirectTo: '/'
});
}]);
我的控制器:
var app = angular.module("myApp", [
'ngRoute',
'ng-breadcrumbs'
]);
app.controller('mainController', function($scope, $routeParams, breadcrumbs) {
$scope.breadcrumbs = breadcrumbs;
$scope.curCategory = $routeParams.cat;
$scope.curVendor = $routeParams.ven;
(...)
});
嗯,我发现哪里不对了!
令我惊讶的是,在特定的控制器中它工作正常,但是当我将它移到 mainController 时它从 $routeParams 返回空对象。
解决方法如下:
$scope.$on('$routeChangeSuccess', function() {
$scope.curCategory = $routeParams.cat;
$scope.curVendor = $routeParams.ven;
});
它只是在填充 $routeParams 之前分配了变量。
我正在努力让我的类别和供应商名称在面包屑上可见。 我正在使用 ng-breadcrumbs 模块 (https://github.com/ianwalter/ng-breadcrumbs)。
我想我在使 curCategory 和 curVendor 全局可访问时遇到了问题,但尝试了一些方法但无法使其工作。
这是我的 html:
<body ng-controller="mainController as main">
(...)
<ol class="breadcrumb">
<li ng-repeat="breadcrumb in breadcrumbs.get({'Category':curCategory,'Vendor': curVendor}) track by breadcrumb.path" ng-class="{ active: $last }">
<a ng-if="!$last" ng-href="#{{ breadcrumb.path }}" ng-bind="breadcrumb.label" class="margin-right-xs"></a>
<span ng-if="$last" ng-bind="breadcrumb.label"></span>
</li>
</ol>
我的路线:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'templates/pages/main.html',
label: 'Home'
}).
when('/:cat', {
templateUrl: 'templates/pages/category.html',
label: 'Category'
}).
when('/:cat/:ven', {
templateUrl: 'templates/pages/vendor.html',
label: 'Vendor'
}).
otherwise({
redirectTo: '/'
});
}]);
我的控制器:
var app = angular.module("myApp", [
'ngRoute',
'ng-breadcrumbs'
]);
app.controller('mainController', function($scope, $routeParams, breadcrumbs) {
$scope.breadcrumbs = breadcrumbs;
$scope.curCategory = $routeParams.cat;
$scope.curVendor = $routeParams.ven;
(...)
});
嗯,我发现哪里不对了!
令我惊讶的是,在特定的控制器中它工作正常,但是当我将它移到 mainController 时它从 $routeParams 返回空对象。
解决方法如下:
$scope.$on('$routeChangeSuccess', function() {
$scope.curCategory = $routeParams.cat;
$scope.curVendor = $routeParams.ven;
});
它只是在填充 $routeParams 之前分配了变量。