gpt4 book ai didi

javascript - 如何在嵌套 Angular UI 路由器中使用 ui-sref?

转载 作者:行者123 更新时间:2023-11-28 05:04:53 25 4
gpt4 key购买 nike

这是一个繁重的时间研究和应用技术,但我无法解决这个问题。我的应用程序有三个顶级导航:家庭、运动和国家。

<head>
<script src="js/angular-ui-router.min.js"></script>
<script src="js/angular.min.js"></script>
<script src="js/index.js"></script>
</head>

导航看起来像:
HTML 如下所示,位于index.html

<ul> 
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="sports">Sports</a></li>
<li><a ui-sref="country">Country</a></li>
</ul>
<div ui-view></div>

在sports.html中,还有其他三个导航,它们不起作用(它们甚至不可点击)。

<ul> 
<li><a ui-sref="sports.football">Football</a></li>
<li><a ui-sref="sports.weightlifting">Weightlifting</a></li>
<li><a ui-sref="sports.swimming">Swimming</a></li>
</ul>
<div ui-view></div>

Angular 看起来像

$stateProvider
.state('home', {
url: '/',
templateUrl: 'index.html'
})
.state('sports', {
url: '/sports',
templateUrl: 'sports.html'
})
.state('country', {
url: '/country',
templateUrl: 'country.html'
})
.state('sports.football', {
url: '/football',
templateUrl: 'sports/football.html'
})
.state('sports.weightlifting', {
url: '/weightlifting',
templateUrl: 'sports/weightlifting.html'
})
.state('sports.swimming', {
url: '/swimming',
templateUrl: 'sports/swimming.html'
});

基本上,当用户打开应用程序时,应该有包含“主页”、“体育”和“国家/地区”的顶部菜单栏。当用户单击“运动”时,该页面中应该显示另一个 View /另一个子导航,显示足球、举重和游泳。然而,这些子导航不可点击且不起作用。

如果您能帮我找出问题所在,我将不胜感激。

最佳答案

这是嵌套 View 的问题。如果您明确针对不同的 View ,则可以解决它。

<ul> 
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="sports">Sports</a></li>
<li><a ui-sref="country">Country</a></li>
</ul>
<div ui-view></div> <!-- your sports.html plugs in here -->

在 sports.html 中:

<ul> 
<li><a ui-sref="sports.football">Football</a></li>
<li><a ui-sref="sports.weightlifting">Weightlifting</a></li>
<li><a ui-sref="sports.swimming">Swimming</a></li>
</ul>
<div ui-view></div> <!-- your [sportName].html plugs in here -->

因此,在您的 app.js 中,您只需添加一些有关 sport.html 中嵌套 View 的参数,如下所示:

$stateProvider
.state('home', {
url: '/',
templateUrl: 'index.html'
})
.state('sports', {
url: '/sports',
templateUrl: 'sports.html'
})
.state('country', {
url: '/country',
templateUrl: 'country.html'
})
.state('sports.football', {
url: '/football',
// Relatively targets the unnamed view in this state's parent state, 'sports'.
// <div ui-view/> within sports.html
views: {
"": {
templateUrl: 'sports/football.html'
}
}
})
.state('sports.weightlifting', {
url: '/weightlifting',
// Relatively targets the unnamed view in this state's parent state, 'sports'.
// <div ui-view/> within sports.html
views: {
"": {
templateUrl: 'sports/weightlifting.html'
}
}
})
.state('sports.swimming', {
url: '/swimming',
// Relatively targets the unnamed view in this state's parent state, 'sports'.
// <div ui-view/> within sports.html
views: {
"": {
templateUrl: 'sports/swimming.html'
}
}
});

如果您想了解更多详细信息,可以阅读此文档:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-views

关于javascript - 如何在嵌套 Angular UI 路由器中使用 ui-sref?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com