У меня есть массив объектов. Когда я нажимаю на имя, он должен открыть страницу 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;
}
как это работает правильно?
Вы можете использовать параметры состояния следующим образом:
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):
});