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

如何推迟Angular.js中的路由定义?,第1张

如何推迟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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5639109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存