angularjs – 角度新路由器 – 嵌套组件和路由

前端之家收集整理的这篇文章主要介绍了angularjs – 角度新路由器 – 嵌套组件和路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用新的角度路由器,想要尝试一个使用组件和嵌套组件的用例.

下面是我写的JavaScript代码来定义两个组件和路由:

angular.module('app',['ngNewRouter'])
  .controller('AppController',function ($router) {

  $router.config([
    {
      path: '/parent',component: 'parent'
    }
  ]);

})
.controller('ParentController',function ($router) {

  this.name = 'Parent component';
  $router.config([
    {
      path: '/child',component: 'child'
    }
  ]);

})
.controller('ChildController',function () {

  this.name = 'Child component';

})
.config(function ($componentLoaderProvider) {

  $componentLoaderProvider.setTemplateMapping(function (compName) {
    return compName + '.html';
  });  

});

和HTML部分:

<!-- index.html -->
<body ng-controller="AppController as app">
    <a ng-link="parent">Go to parent</a>
    <div ng-viewport></div>
</body>

<!-- parent.html -->
{{ parent.name }}<br/>
<a ng-link="child">Show child</a>
<div ng-viewport></div>

<!-- child.html -->
{{ child.name }}

这是一个包含以上代码的Plunker:http://plnkr.co/edit/yWCFgXQI491EYvIldjyR

基于此代码,我有以下问题/问题:

>如果我去最低级别(#/ parent / child),然后点击刷新,则不再显示父组件和子组件.即使URL仍然相同,路由也不会恢复.我是否需要重新启动或执行某些操作来恢复页面的状态?这是一个非常基本的功能,可以将网址加入书签.
>如果我去最低级别(#/父/子),然后点击转到父链接,URL被正确设置为#/ parent,但子组件仍然可见.

打击我的第一件事是,您没有使用任何指向要显示的父级和子级的标识符.

如何/在哪里获得这些信息?你的网址看起来会更好一些(甚至可以解决这个问题,如果它被写成

/parent/:parentId/

要么

/parent/:parentId/child/:childId.

我自己主要使用routeProvider和routeParameters,他们提供这个功能,没有任何麻烦,但是看起来好像纯粹是学术性的,我会尝试阅读模块实际在做什么以及检查是否存在github问题中的一个相关问题.

此外,this page from the documentation似乎对这个问题有所了解.

如果这不是帮助你,你会考虑通过给我们更多的信息来帮助我们吗?

祝你好运!

猜你在找的Angularjs相关文章