使用状态参数在控制器中注入数据的更好方法。我不想 url 更新我传递的内容
A better way to inject data in controller using stateparams. I dont want url to get updated with what I pass along
我正在使用 ui 路由器状态参数,我需要更新视图。如果我将任何字段与 url 一起传递,我可以更新视图,但由于我的 json 条目可以有多个键值对,将每个键添加到 url 的想法stateProvider 不是一个聪明的想法。所以我的问题是如何通过仅传递 JSON.
的字段之一来更新视图
我放了一个 plnkr 演示,如果你看到 url,我不想附加 url 中的所有文本,因为它看起来很尴尬。请告诉我解决这个问题的方法是什么。显然我无法将唯一 ID 添加到 JSON 并将其作为状态
访问
http://plnkr.co/edit/1ItQLvu3O1gjROXR39QN?p=preview
.state('guy', {
parent: 'guys',
url: "/:id/:desc",
controller:'MyCtrl',
templateUrl: "file1.html",
})
Why you not add your json an unique field and unique filed add with url. if your id field is unique then id field add with url otherwise show this code.
.state('guy', {
parent: 'guys',
url: "/:unique_id",
params : {desc:null}
controller:'MyCtrl',
templateUrl: "file1.html",
})
如果我正确理解你的问题:
... need to pass parameters to state, but not via url...
我们可以通过状态设置来解决:params : {}
.
这可能是我们新的 'guy2'
状态定义
.state('guy2', {
parent: 'guys',
url: "/:urlParam",
params: {
urlParam: null,
param1: null,
param2: null,
param3: null,
},
controller:'MyCtrl',
templateUrl: "guy.html",
})
urlParam 将成为 url 的一部分,而其他则不会。我们可以这样称呼它:
<a ui-sref="guy2({
urlParam: guy.name,
param1: guy.desc,
param2: guy.note,
param3: guy.info,
})">{{guy.name}}</a>
和 data.json
像这样:
[
{
"name":"Jane",
"desc":"Jane descrition ...",
"info":"Jane Info ...",
"note":"Jane Note ..."
},
...
]
我们会看到 link 这样的:
#/route/Jane
中查看
关于更多细节的 link 很少:
- How to pass parameters using ui-sref in ui-router to controller
我正在使用 ui 路由器状态参数,我需要更新视图。如果我将任何字段与 url 一起传递,我可以更新视图,但由于我的 json 条目可以有多个键值对,将每个键添加到 url 的想法stateProvider 不是一个聪明的想法。所以我的问题是如何通过仅传递 JSON.
的字段之一来更新视图我放了一个 plnkr 演示,如果你看到 url,我不想附加 url 中的所有文本,因为它看起来很尴尬。请告诉我解决这个问题的方法是什么。显然我无法将唯一 ID 添加到 JSON 并将其作为状态
访问http://plnkr.co/edit/1ItQLvu3O1gjROXR39QN?p=preview
.state('guy', {
parent: 'guys',
url: "/:id/:desc",
controller:'MyCtrl',
templateUrl: "file1.html",
})
Why you not add your json an unique field and unique filed add with url. if your id field is unique then id field add with url otherwise show this code.
.state('guy', {
parent: 'guys',
url: "/:unique_id",
params : {desc:null}
controller:'MyCtrl',
templateUrl: "file1.html",
})
如果我正确理解你的问题:
... need to pass parameters to state, but not via url...
我们可以通过状态设置来解决:params : {}
.
这可能是我们新的 'guy2'
状态定义
.state('guy2', {
parent: 'guys',
url: "/:urlParam",
params: {
urlParam: null,
param1: null,
param2: null,
param3: null,
},
controller:'MyCtrl',
templateUrl: "guy.html",
})
urlParam 将成为 url 的一部分,而其他则不会。我们可以这样称呼它:
<a ui-sref="guy2({
urlParam: guy.name,
param1: guy.desc,
param2: guy.note,
param3: guy.info,
})">{{guy.name}}</a>
和 data.json
像这样:
[
{
"name":"Jane",
"desc":"Jane descrition ...",
"info":"Jane Info ...",
"note":"Jane Note ..."
},
...
]
我们会看到 link 这样的:
#/route/Jane
中查看
关于更多细节的 link 很少:
- How to pass parameters using ui-sref in ui-router to controller