我正在使用搜索功能构建地图。基本上,我想在我的ember应用程序中存储服务器中的对象,这样每当我搜索某个集合时,服务器的结果会自动更新集合,以便相关视图自行更新。这一切都在一页上。
到目前为止,我有一个Application Controller和一个Results ArrayController。数据显示在结果控制器中。现在我需要在请求搜索时,它从服务器获取JSON并更新结果集合。
第一个问题是: 你会如何构建它?
我只使用jQuery创建了一个v1,然后用Ember开始了一个新的,但我失去了我应该如何构建它的结构。
我根据我的内容构建了一个小jsbin:http://emberjs.jsbin.com/IYuSIXE/1/
第二个问题: 我如何更改路线的模型内容?我的方向是错误的吗?
非常感谢
答案 0 :(得分:1)
您可以使用查询参数执行1和2,请查看此处的文档https://github.com/alexspeller/website/blob/a96d9afe4506454b155cc64299e86e558ce3c9f1/source/guides/routing/query-params.md
当您的路线调用模型时,它会传递查询参数,您可以对它们进行搜索
model:function( params, queryParams, transition ) { callToYourBackedEndWithQueryParams}
第二个问题:我如何更改路线的模型内容?我 走向错误的方向?
当请求搜索时,您可以在操作中调用this.transitionTo({queryParams: {sort: 'asc'}});
,这将再次激活模型挂钩,您可以再次对服务器进行查询。
答案 1 :(得分:0)
我正在寻找的是一种即时更改模型的方法。
所以基本上如果我有这个:
App.ResultsRoute = Ember.Route.extend({
model: function() {
// empty array that will contain results
return [];
}
});
我可以这样做来设置模型的内容:
this.get('model').setObjects([{}, {}, {}]);
通过这种方式,我可以动态地使用模型,使用来自几乎任何地方的对象加载它们。