我想了解Ember。我无法解决这个问题。我目前有路线:
/participants
/list
/search/:query
我正在试图找出如何让我的搜索页面显示该查询参数。导航工作,我只是无法弄清楚如何显示“查询”位(即“你搜索本尼”)
(我试过的一件事是我有一个带有'searchtext'的App.ParticipantsSearchController,我知道我可以在模板中显示{{searchtext}}
,但即使我尝试后来做了一个App.ParticipantsSearchController.searchtext = 'abc'
,但没有得到更新。所以这对我来说似乎没有任何好处。)
我真的很感谢那些比我更了解Ember的人的帮助。
答案 0 :(得分:0)
部分问题是参数应该表示代表该资源的模型的唯一ID。如果您要进入并随机更改唯一ID,从技术上讲,您的模型应该完全不同。如果您的模型完全不同,您应该使用transitionTo从路径(或者从控制器的transitionToRoute)转换到路径以切换模型。
而且直观的像素是正确的,你需要使用模型上的集合,model.set('searchtext','mooooooo');
什么才能真正帮助你成为Alex Speller为Ember实施的查询参数。见http://discuss.emberjs.com/t/query-string-support-in-ember-router/1962/44。在那之前,你将做一些非常奇怪的过渡,以获得代表模型的url。也许网址不应该更新,直到他们按下搜索,或者沿着那些方向的东西。然后在这种情况下,您可以调用transitionTo / transitionToRoute然后url将能够匹配当前模型,因此您可以输入URL并直接进入该搜索结果。顺便说一下,如果要进行多项搜索,可以将多个slugs添加到单个资源中。如果你这样做,你需要添加serialize方法来指定每个属性......
/search/:age/:sex/:country
serialize: function(model) {
// this will make the URL `/search/12/M/Brazil`
return { age: model.age, sex: model.sex, country: model.country };
}