在ui中,路由器用不同的参数链接到相同的状态don'Don’我什么都不做
In ui-router links to the same state with different params don't do anything
我有一个菜单,它有几个链接,所有链接都使用相同的ui路由器状态。
因此,它们都有不同的参数和不同的URL。
在不同的状态下单击时,所有这些链接都可以工作。
一旦你点击一个并进入"范围"状态,但现在没有任何链接起作用。
HTML:
<a ui-sref="range({type: 'foo'})" class="dropdown-item text">
Product Foo
</a>
<a ui-sref="range({type: 'bar'})" class="dropdown-item text">
Product Bar
</a>
状态定义:
var _range = [ 'foo', 'bar' ];
module.config([ '$stateProvider', function($stateProvider) {
var rangeState = {
parent: 'layout',
url: '/{type:' + _range.join('|') + '}-doors',
data: {
range: _range
},
views: {
'main@': {
templateUrl: 'doors/range/range.html',
controller: 'rangeController'
}
},
resolve: {
range: [ '$stateParams', 'rangeResource', function($stateParams, rangeResource) {
return rangeResource.query({ range: $stateParams.type }).then(function(range) {
range.name = $stateParams.type;
return range;
});
}]
}
};
$stateProvider.state('range', rangeState);
}]);
有人能帮我弄清楚这不起作用吗?
要查看此操作,请转到https://uat.yaledoor.co.uk从"门样式"下拉菜单中选择左侧的链接。第一次它会把你带到页面。随后单击同一下拉列表中的其他链接将无法执行任何操作。
如果您使用不同参数的相同状态,则您的状态将在重载选项上工作。
试试这个:
$stateProvider.state('range', rangeState, {reload: true});
您的状态URL看起来可疑。一般来说,您可以通过以下方式用特定匹配来定义它们:
URL: "/{type:foo|bar}"
在您的情况下,看起来您正试图将"-doors"附加到类型中,以便获得类似"#/foo-doors"或"#/bar-doors"的URL。因此,在将其传递给URL匹配字符串之前,您需要将其附加到ranges
中的值中。
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Don'不允许将焦点集中在自动完成的选择上
- javascript如果图像不存在don't加载它
- append元素don'不要在提交时出现
- AngularJS指令部分应用的函数don'不起作用
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- 我没有'I don’我不理解for在循环中的用途
- jQuery 1.7.2:.on()在一个页面上工作;Don’别再干别的了
- AngularJs|Don'在成功加载所有指令htmls之前,不显示页面
- Codeacademy Javascript..好的!/输出正确,但codeacademy没有;I don’我不喜欢
- Don't工作警报代码jQuery
- 如何实施“;Don'不要再给我看了”;在GWT中
- AngularJS routeprovider赢得'Don’我什么都不做
- Mediawiki皮肤创建-Javascript don'Don’t get load
- Dropit下拉列表没有'Don’不要躲在老鼠屋
- 链接don'由于Javascript悬停效果,无法在移动设备上工作
- Jquery live()绑定没有'I don’我对某些元素不感兴趣
- Ng点击don´不起作用
- Office加载项don't与“;asp:”;
- Target=_blank don'我不在mozilla和IE工作