Javascript 在更改url时重新加载视图
我使用with(和helper一起)将视图和控制器收集到页面中 但是我的观点有个问题没有更新 我的代码(相关的代码) config.jsJavascript 在更改url时重新加载视图,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我使用with(和helper一起)将视图和控制器收集到页面中 但是我的观点有个问题没有更新 我的代码(相关的代码) config.js app.config(function($httpProvider, $urlRouterProvider, RestangularProvider, stateHelperProvider) { $urlRouterProvider.otherwise("/"); stateHelperProvider .state({
app.config(function($httpProvider, $urlRouterProvider, RestangularProvider, stateHelperProvider) {
$urlRouterProvider.otherwise("/");
stateHelperProvider
.state({
name: 'division',
url: '/division/:division',
views: {
'main': {
templateUrl: '/templates/division.main?uri=' + segment(2),
controller: 'DivisionController'
}
},
children: [
{
name: 'appcontent',
url: '/content',
views: {
'content': {
templateUrl: "templates/division.appcontent?uri=" + segment(2) + '&root=' + segment(4),
controller: 'AppContentController'
}
},
children: [
{
name: 'root',
url: '/:root',
views: {
'roots': {
templateUrl: "templates/division.appcontent.roots?uri=" + segment(2) + '&root=' + segment(4)
}
}
}
]
}
]
});
});
我用于链接的代码
// linking to another division
<a ui-sref="division.appcontent({division: 'test2')">test2</a>
// linking to another root
<a ui-sref="division.appcontent.root({division: 'test2', root: 'test')">test2</a>
//链接到另一个部门
测试2
//链接到另一个根
测试2
解释
但是我的观点有个问题没有更新
我的视图是包含实际数据的视图,因此我需要在更改时重新加载它们
当url中的:division
为test1
时,则模板template/division.main
有一组数据。但是当url中的:division
为test2
时,模板template/division.main
具有另一组数据
因此,每当url中的:division
发生更改时,我需要重新加载模板template/division.main
以及所有子模板
但是当url中的:root
更改时,我只需要重新加载模板template/division.appcontent.root
,而不是template/division.main
模板
这是否可能,或者我是否应该更改为仅使用API来获取数据
我真的希望这是有意义的
笔记
段
是我制作的一个函数,用于从角度路线获取一些数据。多亏了from,我使用templateUrl作为一个函数使其工作
我的新config.js:
app.config(function($httpProvider, $urlRouterProvider, RestangularProvider, stateHelperProvider) {
$urlRouterProvider.otherwise("/");
stateHelperProvider
.state({
name: 'division',
url: '/division/:division',
views: {
'main': {
templateUrl: function(params) {
return '/templates/division.main?uri=' + params.division;
},
controller: 'DivisionController'
}
},
children: [
{
name: 'appcontent',
url: '/content',
views: {
'content': {
templateUrl: function(params) {
return 'templates/division.appcontent?uri=' + params.division + '&root=';
},
controller: 'AppContentController'
}
},
children: [
{
name: 'root',
url: '/:root',
views: {
'roots': {
templateUrl: function(params) {
return 'templates/division.appcontent.roots?uri=" + params.division + '&root=' + params.root;
}
}
}
}
]
}
]
});
});
这可能会有帮助,但这并不能解决我的问题。这使用Javascript来更改视图中的内容。我的视图是基于PHP的,这使得在不重新加载视图或创建API以获取数据的情况下无法获取正确的数据。无论如何,谢谢。根据,templateUrl可以是传递当前状态参数的函数
templateUrl:function(params){returnmytemplates[params.pageId];}
谢谢@ChrisT,这解决了我的问题。