我想有面包屑,例如:Home / Cars / Audi / T8,其中Home,Cars和Audi会返回首页,但参数不同,例如单击汽车复选框等。

我将AngularJS与ui.router和ncy-angular-breadcrumb一起使用。

$stateProvider
    .state('main',{
        url: '/',
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        ncyBreadcrumb: {
            label: 'HomePage'
        }
    })

    .state('main.type',{
        controller: function($scope, breadcrumbsFctry) {
            $scope.defaultType = 'car';
        },
        ncyBreadcrumb: {
            label: '{{defaultType}}',
            parent: 'main'
        }
    })

    .state('main.type.make',{
        controller: function($scope, breadcrumbsFctry) {
            $scope.defaultMake = 'audi';
        },
        ncyBreadcrumb: {
            label: '{{defaultMake}}',
            parent: 'main.type'
        }
    })
    .state('car', {
        url: '/ad/:name-:id',
        templateUrl: 'views/ad/ad.html',
        controller: 'AdCtrl',
        ncyBreadcrumb: {
            label: ':name',
            parent: 'main.type.make'
        }
    })


工厂:

.factory('breadcrumbsFctry', function () {

        var type = '';
        var make = '';

        return {

        };

    });


如何通过状态与不同的控制器共享参数?

最佳答案

您可以将相关数据保留在专用服务中,或使用本机JS存储服务(例如sessionStorage或localStorage)。

服务是单例的,可用于在控制器之间共享数据。

在此处阅读有关sessionStorage和localStorage的信息:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API

10-07 13:31
查看更多