使用服务器json数据重新加载路径模型并需要与ember相关的意见

时间:2013-10-22 00:31:21

标签: ember.js ember-model

我正在使用搜索功能构建地图。基本上,我想在我的ember应用程序中存储服务器中的对象,这样每当我搜索某个集合时,服务器的结果会自动更新集合,以便相关视图自行更新。这一切都在一页上。

到目前为止,我有一个Application Controller和一个Results ArrayController。数据显示在结果控制器中。现在我需要在请求搜索时,它从服务器获取JSON并更新结果集合。

第一个问题是: 你会如何构建它?

我只使用jQuery创建了一个v1,然后用Ember开始了一个新的,但我失去了我应该如何构建它的结构。

我根据我的内容构建了一个小jsbin:http://emberjs.jsbin.com/IYuSIXE/1/

第二个问题: 我如何更改路线的模型内容?我的方向是错误的吗?

非常感谢

2 个答案:

答案 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([{}, {}, {}]);

通过这种方式,我可以动态地使用模型,使用来自几乎任何地方的对象加载它们。