Как передать данные в контроллер, открытый через $ state.go (controller.state)?

0

У меня есть массив объектов. Когда я нажимаю на имя, он должен открыть страницу md-content с настройкой папки. Ситуация следующая: когда я нажимаю на имя -it, открывается conf. страницы с FolderConfigController, но я хочу отправить объект папки в FolderConfigController для работы с ним.

folders = [{name: name1, id:id1},{name: name2, id:id2},{name: name2, id:id2}]

перечисленные в lefsidenav:

<div ng-repeat="folder in folders" ng-click="vm.openConfigPage()">{{folder.name}}

в папкеController:

vm.openConfigPage = openConfigPage;
function openConfigPage() {
    $state.go('triangular.config');
}

FolderConfigController.config:

(function() {
'use strict';

angular
    .module('app.components.work')
    .config(moduleConfig);

/* @ngInject */
function moduleConfig($stateProvider) {

    $stateProvider
    .state('triangular.config', {
        url: '/work/folder/config',
        templateUrl: 'app/components/work/folder-config/folder-config.tmpl.html',

        controller: 'FolderConfigController',
        controllerAs: 'vm',
    });

}
})();

можно сделать что-то вроде:

function openConfigPage(folder) {
    $state.go('triangular.config');
    FolderConfigController.folderObject = folder;
}

как это работает правильно?

Теги:
model-view-controller

1 ответ

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

Вы можете использовать параметры состояния следующим образом:

function moduleConfig($stateProvider) {

    $stateProvider
    .state('triangular.config/:id/:name', {
        url: '/work/folder/config',
        templateUrl: 'app/components/work/folder-config/folder-config.tmpl.html',

        controller: 'FolderConfigController',
        controllerAs: 'vm',
    });

}
})();

а затем, когда вы переходите к этому состоянию, вы можете установить параметры

function openConfigPage(folder) {
    $state.go('triangular.config', {"name": folder.name, "id": folder.id});
}

и вводят $ stateParams в контроллер FolderConfigController для доступа к параметрам имени и идентификатора

.controller('FolderConfigController ', function($scope, $stateParams){

   console.log($stateParams):

});
  • 0
    Спасибо за помощь!
  • 0
    Я рад, что смог помочь

Ещё вопросы

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