Angular嵌套路由未正确加载

时间:2016-10-11 17:00:36

标签: javascript angularjs url-routing angular-route-segment

问题#1

我试图为自己定制angular-route-provider示例。 我试图为第1节中的每个元素实现单独分隔的标签。

我的部分#/ section1 / hs(hs.html)仍然为选项卡实现#/ section1 / hs / X而不是#/ section1 / hs / ov。

您可以看到app.js代码here

我尝试过使用prefs示例&其他方法,但它不起作用。

问题#2

此外,当我在templateUrl中使用另一个角度应用程序路径时,页面似乎没有正确加载(仅显示文本)。 是因为无法在templateUrl中调用另一个Angular应用程序。我不确定这一点,因为我不是AngularJS的专家。

以下是this示例的代码。非常感谢。

section1.html

<li ng-repeat="i in items" 
ng-class="{active:('s1.itemInfo' |  routeSegmentStartsWith) && 
('id' | routeSegmentParams) == i}">

<a ng-href="#{{'s1.itemInfo' | routeSegmentUrl: {id: i} }}">{{i}}</a>

</li>

<li ng-class="{active:('s1.hs' | routeSegmentStartsWith)}">
<a ng-href="#{{'s1.hs' | routeSegmentUrl }}">HTML/CSS</a>
</li>

<li ng-class="{active:('s1.prefs' | routeSegmentStartsWith)}">
<a ng-href="#{{'s1.prefs' | routeSegmentUrl }}">Preferences</a>
</li>

hs.html

<ul class="nav nav-tabs">
<li ng-class="{active: $routeSegment.contains('ov')}">
<a href="#/section1/hs/ov">Overview</a>
</li>   
</ul>

<div app-view-segment="2" class="anim" No tab selected.> </div>

1 个答案:

答案 0 :(得分:0)

如果您实际键入/section1/hs/ov,它会导航到正确的页面吗?您的误解是,导航到s1.hs标签应该来自templates/secion1/hs.html,但它会被.when('/section1/:id', 's1.itemInfo')覆盖。

因此,在您导航到更高的目录(在本例中为section1/hs/ov)之前,将不会加载模板。 /section1/anything/tab1会导致仍然加载tab1.html,因为除了设置标题名称之外,其他任何内容都不会使用。

要使用templateUrl转到其他角度应用程序(未在应用程序模块声明中作为依赖项注入),您需要执行页面重新加载。如果您将templateUrl设置为/templates/newapp.html,并在html ng-href={{'newapp' | routeSegmentUrl }}" m中确保省略#,那么它应该有效。