我想知道是否可以从搜索字段更新路由中的 API URL?
App.ArtistRoute = Ember.Route.extend({
model: function(ishav) {
return $.getJSON('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist='+ishav.name+'&api_key=xxxxxxxxxxxxxxxx&format=json').then(function(data){
console.log(data.artist)
return data.artist
})
}
});
我想从搜索字段中获取名称,而不是 ishav.name
。
如何做到这一点?
最佳答案
你一定能做到。您提供的代码中缺少的部分就是发生这种情况的地方。从 View 中,您将重定向到路线并将该术语作为参数传递。
在 View 中,您可以绑定(bind)您的输入字段
{{input class="search-query" type="search"}}
当情况发生变化时,您将在 Controller 上执行某些操作:
search: function (val) {
this.transitionToRoute(App.ArtistRoute, val);
}.property()
然后在您的路线上您可以简单地使用该名称。
额外
为了避免不必要的网络请求,我只会在debounce内引入转换函数(以确保只调用一次):
search: function (val) {
Ember.run.debounce(this.searchArtist, val, 500);
}.property(),
searchArtist: function (name) {
this.transitionToRoute(App.ArtistRoute, name);
}
关于javascript - Ember 从搜索字段更新路由中的 API url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538747/