2

我正在尝试理解 Ember。我完全搞不定。我目前有以下路线:

/participants
  /list
  /search/:query

而且我正试图弄清楚如何让我的搜索页面显示该查询参数。导航有效,我只是不知道如何显示那个“查询”位(即“你搜索了 Bennie”)

(我试过的一件事是我有一个 App.ParticipantsSearchController 里面有一个'searchtext',我知道我可以{{searchtext}}在模板中显示它,但即使我稍后尝试做一个App.ParticipantsSearchController.searchtext = 'abc',它也不会得到更新。所以这似乎对我没有任何好处。)

我非常感谢比我更了解 Ember 的人的帮助。

4

1 回答 1

0

问题的一部分是参数应该代表代表该资源的模型的唯一 id。如果您进入并随机更改唯一 ID,从技术上讲,您的模型应该完全不同。如果您的模型完全不同,您应该使用路由中的 transitionTo(或控制器中的 transitionToRoute)切换到路由以切换模型。

而intuitivepixel是正确的,你需要在你的模型上使用集合,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 并直接获得该搜索结果。顺便说一句,如果您要进行多个搜索,则可以将多个 slug 添加到单个资源中。如果你这样做,你需要添加 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 };
 }
于 2013-08-25T15:22:13.143 回答