我有这样的状态
.state('dropdown', {
url: '/dropdown',
views: {
"@":{
template: getTemplate(params)
}
},
resolve: {
params: function(){
return {
stateHeader: 'Dropdown',
moduleName: 'dropdown',
files: [{"title": "dropdown.html", "path":"app/modules/dropdown/dropdown.html"}, {"title": "dropdown.ctrl.js", "path":"app/modules/dropdown/dropdown.ctrl.js"}, {"title": "dropdown.css", "path":"app/modules/dropdown/dropdown.css"}]
}
}
}
})
并且模板返回功能是
function getTemplate(stateParams) {
// I want to access those resolved parameters here
var moduleName = stateParams.moduleName;
var templateUrl = moduleName + '/' + moduleName;
return '<div><tabs-directive exe-template=\'app/modules/' + templateUrl + '.html\' files=\'' + stateParams.files + '\' header=\'Basic Usage\'></tabs-directive></div>';
}
如何在getTemplate函数中传递和访问那些已解析的params对象,以使用相同的函数返回模板?请帮帮我。
注意: getTemplate函数也必须重新用于其他状态。
答案 0 :(得分:0)
.state('dropdown', {
url: '/dropdown',
params: {
stateHeader: 'Dropdown',
moduleName: 'dropdown',
files: [
{"title": "dropdown.html", "path":"app/modules/dropdown/dropdown.html"},
{"title": "dropdown.ctrl.js", "path":"app/modules/dropdown/dropdown.ctrl.js"},
{"title": "dropdown.css", "path":"app/modules/dropdown/dropdown.css"}
]
},
views: {
"@": {
template: getTemplate($stateParams) {
var moduleName = $stateParams.moduleName;
var templateUrl = moduleName + '/' + moduleName;
console.log('<div><tabs-directive exe-template=\'app/modules/' + templateUrl + '.html\' files=\'' + $stateParams.files + '\' header=\'Basic Usage\'></tabs-directive></div>');
}
}
},
})
什么都没有得到解决&#39;在你的代码中,它们似乎都是params,所以你根本不需要决心。当您参考params时,即使它们处于相同的状态,您仍然需要将其视为$ stateParams(而不是stateParams),因此getTemplate()应该将其用作参数不是参数。