【发布时间】:2016-11-22 07:20:20
【问题描述】:
我有一个页面,其中我使用多个视图显示 2 个不同的产品列表,每个视图都有一个控制器和模板文件。我的状态定义是这样的:
.state('all_lists', {
url: '/lists',
views: {
'' : {templateUrl: 'my-lists.html'},
'featured@all_lists' : {templateUrl: 'featured.html', controller: 'featuredCtrl'},
'deals@all_lists' : {templateUrl: 'deals.html', controller: 'dealsCtrl'}
}
}
)
每个单独的列表在顶部都有分页和排序过滤器,这些分页和排序过滤器作为状态参数添加到 URL。 请告诉我如何为状态视图定义这些参数,以便可以将它们添加到 URL 中,然后在相应的控制器中使用。
如果您对在 URL 中添加分页参数的产品列表有更好的想法,请分享您的想法。 任何帮助将不胜感激。
谢谢
注意: 请注意,我需要在 1 页上显示两个列表。它是一种主页和特色项目列表,然后在热交易项目列表下方显示,这两个列表都有分页、排序和其他一些过滤器。 URL 将是这样的。 mydomain.com/products/featured-page_1/deals-page_2/perpage_10/
注意 2: 经过大量研究和调查,我发现这是一个明显的Parallel States案例。请告诉我如何使用我目前使用的 URL 参数方案来实现并行状态。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body>
<div id="content">
<h1>Products Homepage</h1>
<h3>Some common filters for both lists</h3>
<div id="featured">
<h2>Featured List</h2>
<div>pagination and other filters</div>
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
</div>
<div id="deals">
<h2>Hot Deals List</h2>
<div>pagination and other filters for hot deals</div>
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
</div>
</div>
</body>
</html>
【问题讨论】:
-
您需要这些参数来允许用户添加书签还是因为您希望人们手动编写这些 url?
-
我需要 URL 中的参数以使应用程序在不使用本地或会话存储的情况下保持其状态,并且用户还可以为应用程序的任何状态添加书签。请注意,除了分页和排序之外,还有一些高级过滤器作为参数添加到 URL。
-
您的写作方式类似于缩略图视图和列表视图。你能显示一个示例网址吗?你只想要分页吗?或者如果您接受任何其他替代方案我可以建议您。让我知道您的完整要求,因为我已经为我的应用程序实现了这个。
-
@AbdulHaseeb 你在吗?
标签: angularjs angular-ui-router multiple-views