$stateParams,如何将值从一个状态传递到另一个状态
$stateParams, how to pass value from one state to another
在一个离子/Angularjs项目上,当在一个状态下单击列表中的一个项目时,我如何设置一个规则来根据该列表中单击的项目的项目ID在下一个视图中提取数据?
代码太长了,无法粘贴到这里,但你会在jsfiddle 中得到这个想法
我想通过点击列表中灰色的项目,更新该项目的详细视图的信息(蓝色背景)。
列表视图的HTML:
<h1 class="featured_in_mag_name">Dishes in that category:</h1>
<ion-item ng-repeat="dish in dishList | selectedDishType:selection ">
<article class="item_frame">
<h4 class="item_name_english">{{dish.nameEnglish}}</h4>
<p class="item_name_local_language">{{dish.nameLocal}}</p>
</article>
<!--main article frame 1 -->
</ion-item>
</ion-list>
详细视图的HTML
<ion-view view-title="Dish " >
<h1 class="featured_in_mag_name">Selected dish - detailed view: </h1>
<ion-content>
<article class="detailed_view">
<h1 class="item_name_english">{{dish.nameEnglish}}</h1>
<p class="item_name_local_language">{{dish.nameLocal}}</p>
<p class="item_name_local_language">{{dish.nameLocal}}</p>
<p class="item_name_local_language">{{dish.description}}</p>
<p class="item_name_local_language">{{dish.region}}</p>
<p class="item_name_local_language">{{dish.country}}</p>
</article>
</ion-content>
</ion-view>
实现这一点的一种方法是使用$state服务$state.go将转换到新状态,并且可以接受该状态的参数。然后可以在新状态的控制器中通过$stateParams访问这些参数。
以你为例,它应该是类似于的东西
在列表视图中:
<ion-item ng-repeat="dish in dishList | selectedDishType:selection " ng-click="$state.go('detailsState', { id: dish.itemID })">
然后,在下一个状态下,你可以从$stateParams中获取控制器中的id,如下所示:
function controller($stateParams) {
var itemId = $stateParams.id;
}
请记住,要完成这项工作,您必须使用这样的路线设置您的状态:
$stateProvider.state("detailsState", {
url: "/details/:id"
});
所有这些都是ui.router模块的一部分。有关更多信息,请参阅http://angular-ui.github.io/ui-router/site/#/api/ui.router
我认为你基本上应该:
-
传递url中的id(进程取决于您使用的路由器),例如
/bear/:id
- 让路由器处理重定向
- 然后在详细视图中,控制器从存储中(通常通过服务)重新获取对象,并通过
$scope
将其加载到模板中
通过这种方式,您将获得2个独立的、漂亮的无状态和相互链接的路由。这里的无状态意味着,如果你访问/bear/2
,即使只是键入url,你也会得到与资源bear 2对应的视图,这是强语义的,就像REST端点一样。
此外,您可以注意到您所描述的模式被称为MasterDetails=)
相关文章:
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 如何将JavaScript自动POST的状态代码获取到另一个域
- $stateParams,如何将值从一个状态传递到另一个状态
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 导航到另一个页面后,复选框状态会更改
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 如何从一个组件访问另一个组件的状态
- 如何将链接状态设置为在用户访问另一个页面之前保持
- 将函数的返回传递到另一个状态
- 创建一个复选框按钮的散列,这些按钮在单击时在Twitter Bootstrap Button组中处于活动状态
- 如何使单选按钮在选择一个选项(CSS)后显示为选中状态
- 使用AngularJS在ng重复中从一个状态到另一个状态制作动画
- 多个复选框中的一个应始终保持未选中状态
- 从一个正在运行的PHP代码中,了解如何更新DIV标记中的状态
- Angular ui路由器:如何阻止访问一个状态
- 当一个复选框处于活动状态时,禁用所有复选框
- Angular 1:最后一个复选框没有'刷新页面后不要保持选中状态
- 我如何才能进入一个完整的角度状态应用程序