栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何推迟Angular.js中的路由定义?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何推迟Angular.js中的路由定义?

由于路由是在提供者级别定义的,因此通常只能在配置块中定义新的路由。问题在于,在配置块中,所有重要服务仍未定义(最值得注意的是

$http
)。因此,表面上看起来w无法动态定义路由。

现在,事实证明, 实际上在应用程序生命周期的任何时候添加/删除路由都非常容易! 查看

$route

源代码,我们可以看到所有路由定义都被简单地保存在
$route.routes
哈希中,可以在任何时间点对其进行修改(简化示例):

myApp.controller('MyCtrl', function($scope, $route) {        $scope.defineRoute = function() {        $route.routes['/dynamic'] = {templateUrl: 'dynamic.tpl.html'};    };});

这是演示此操作的jsFiddle:http :
//jsfiddle.net/4zwdf/6/

实际上,如果我们想接近AngularJS所做的事情,则路由定义逻辑应该稍微复杂一点,因为AngularJS还在定义重定向路由以正确处理最后的路由

/
(使其有效地为可选)。

因此,尽管上述技术可行,但我们需要注意以下几点:

  • 此技术取决于内部实现,如果AngularJS团队决定更改定义/匹配路由的方式,则该技术可能会中断
  • 也可以定义
    otherwise
    使用的路由
    $route.routes
    是默认路由存储在相同的散列的下
    null


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号