我有一些对象。当我点击名称时,它应该打开md-content页面并配置文件夹。情况是下一个:当我点击名字时 - 打开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}}
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;
}
它是如何以正确的方式工作的?
答案 0 :(得分: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控制器以获取对name和id参数的访问权
.controller('FolderConfigController ', function($scope, $stateParams){
console.log($stateParams):
});