gpt4 book ai didi

javascript - AngularJS,具有不同模板但具有相同 Controller 的多个路由如何?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:28 27 4
gpt4 key购买 nike

我正在调查我是否可以拥有标题所说的内容。这是我的想法。

假设我有这条路线:

  .when('/', {
templateUrl : 'partials/homepage.html',
})

.when('/test', {
templateUrl : 'partials/test.html',
})

.when('/page/:pageID', {
templateUrl : 'partials/page.html',
})

.when('/page/single/:pageID', {
templateUrl : 'partials/page-single.html',
})

直到现在,我还有机会在 route 添加 templateUrl 以及 Controller 详细信息,并且一切正常。

现在应用程序已更改,只有一个 Controller 包含所有需要的信息,并且必须保留为一个 Controller 。路线将是这样的:

  .when('/:templateName/:pageID', {
controller: 'myCtrl'
})

我可以通过获取 templateName 参数从 Controller 设置模板 ID 吗?如果是这样,最后一个路由示例/page/single/:pageID 怎么样?我怎么知道路由中有第二个选项?

我可以获取 templateName 参数,并通过 $routeChangeSuccess 方法查看它的变化,但我找不到任何方法来动态设置模板。

有什么想法吗?

最佳答案

一种解决方案可能是以下一种:

angular.module('myapp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/:templateName/:pageId', {
templateUrl: function(urlattr){
return '/pages/' + urlattr.templateName + '.html';
},
controller: 'YourCtrl'
});
}
]);

来自 AngularJs 1.3 文档:

templateUrl – {string|function()} – path or function that returns a path to an html template that should be used by ngView.

If templateUrl is a function, it will be called with the following parameters:Array.<Object> - route parameters extracted from the current $location.path() by applying the current route

关于javascript - AngularJS,具有不同模板但具有相同 Controller 的多个路由如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com