我正在开发AngularJS中的文件编辑应用程序.我的网址看起来像这样:
#/ fileName.md
要么
#/文件夹/ fileName.md
要么
#/文件夹/嵌套文件夹/另一个文件夹/ itgoesonforever/filename.MD
我不想为每一个深度做一条路线,它可能是~15条路线深.有没有办法有条件路线?粗略地:
/:fileorfolder?/:fileorfolder?/:fileorfolder?/:fileorfolder?
Run Code Online (Sandbox Code Playgroud)
Mar*_*cok 15
我认为你可以用Angular做的最好的是*,从$ routeProvider的v1.1.5开始是新的 :
path可以包含以star(*name)开头的命名组.$routeParams当路线匹配时,所有字符都热切地存储在给定名称下.
例如,像/color/:color/largecode/*largecode/edit匹配/color/brown/largecode/code/with/slashes/edit和提取的路线:
-color: brown
-largecode: code/with/slashes
你必须自己解析这个largecode参数.
我想我明白了!诀窍是将模板设置为简单,然后修改范围以包含模板的动态路径.
所以现在我可以放置一个文件/foo/bar/baz.html并查看转到的模板server.com/foo/bar/baz.
// Routes
app.config( function($routeProvider) {
$routeProvider
// Home
.when( '/', {
templateUrl: 'home.html',
controller: 'HomeController'
})
// Catch All
.when( '/:templatePath*', {
template: '<ng-include src="templatePath"></ng-include>',
controller: 'CatchAllCtrl'
})
});
// Catch All Controller
app.controller("CatchAllCtrl", function($scope, $routeParams) {
$scope.templatePath = $routeParams.templatePath + '.html';
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7101 次 |
| 最近记录: |