Как активировать состояние и передать объект в новый вид?

0

app.js:

 $stateProvider.state('datasource', {
            url: '/datasource',
            templateUrl: 'views/datasource.html',
            controller: 'datasourceController'
        });

        $stateProvider.state('datasourceList', {
            url: '/datasource/:datasourceId',
            templateUrl: 'views/datasource.list.html',
            controller: 'datasourceController'
        });

Затем у меня активирована функция onClick, определенная в (datasourceController)

$scope.submitSelected = function() {
    if (angular.isDefined($scope.selectedSource)) {
        $scope.datasource = dataSourcesService.find($scope.selectedSource.id);
        $state.go('datasourceList', {datasourceId : datasource});
    }
 }

Как я уже говорил, в моей datasource.html зрения есть элемент щелчок, который вызывает submitSelected() функция

Я могу получить данные успешно из моей службы на основе ID, когда вызываю его в функции.

Проблема в том, что я не могу получить доступ к результатам (области) этого в представлении datasource.list.html после изменения состояния.

Теги:
angular-ui-router

1 ответ

0
Лучший ответ

Добавить 'param' в конфигурацию состояния

$stateProvider.state('datasource', {
        url: '/datasource',
        templateUrl: 'views/datasource.html',
        controller: 'datasourceController'
    });

    $stateProvider.state('datasourceList', {
        url: '/datasource/:datasourceId',
        templateUrl: 'views/datasource.list.html',
         params:      ['index', 'anotherKey'],
        controller: 'datasourceController'
    });

И получить значения, используя $ stateParams в другом контроллере

 app.controller('datasourceController', function($scope, $stateParams) {
var index = $stateParams.index;
var anotherKey = $stateParams.anotherKey;

});

Ещё вопросы

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