прохождение сложного типа в качестве параметра

0

Угловой js/угловой ui маршрутизатор 0.2.15

Я пытаюсь передать сложный массив js в контроллер, используя $ state.go. Ниже мой код вы можете помочь. выглядит как следующая ошибка бросания кода

Ошибка: [$ injector: unpr] http://errors.angularjs.org/1.2.28/ $ инжектор /unpr? P0 = servicesProvider %20% 3C- %20services

.js файл

var services = {complex type};
$state.go("linearOfferProcess", {'services': services});

в моем route.js

state('linearOfferProcess', {
            url: '/linearOfferProcessor',
            templateUrl: '/partials/linear_process.html',
            controller: 'linearProcessController',
            services:
                function($stateParams) {
                  return $stateParams.services;
                }
        }

контроллер

angular.module('app').controller('linearOfferProcessController',function($scope) {

    $scope.services = services;

        });
  • 0
    в определении штата нет собственности на services чего вы пытаетесь достичь здесь ..
Теги:
angular-ui-router

1 ответ

0

К сожалению, я не знаю, возможно ли это сделать, но вы можете попробовать сделать это с помощью Factory. Я сделал небольшой макет для вас, в контейнере я храню услуги и создаю уникальный идентификатор для каждого сложного объекта. Поэтому вы можете получить его, когда захотите.

angular.module('app').factory('ServicesContainer', function() {
    var counter = 1;
    return {
        container: {},
        add: function(services) {
            container[counter] = services;

            return counter;
        }
    };
});

angular.module('app').controller('SomeController', function(ServicesContainer, $state) {
    var id = ServicesContainer.add({ complex object });

    $state.go('services', {
        id: id
    });
});

angular.module('app').config(function($stateProvider) {
   $stateProvider.state('services', {
        url: '/{id}',
        onEnter: function(ServicesContainer, $stateParams, $log) {
            $log.info('Services', ServicesContainer[$stateParams.id]);
        }
   });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню