Javascript 在更改url时重新加载视图

Javascript 在更改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({

我使用with(和helper一起)将视图和控制器收集到页面中

但是我的观点有个问题没有更新

我的代码(相关的代码) config.js

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,这解决了我的问题。