相关疑难解决方法(0)

如何在EmberJS/Ember Data中使用单一路径的多个模型?

通过阅读文档,您似乎必须(或应该)将模型分配给路径,如下所示:

App.PostRoute = Ember.Route.extend({
    model: function() {
        return App.Post.find();
    }
});
Run Code Online (Sandbox Code Playgroud)

如果我需要在某个路线中使用多个物体怎么办?即帖子,评论和用户?如何告诉路由加载这些?

ember.js ember-data

85
推荐指数
4
解决办法
3万
查看次数

一起请求两个模型

我有两个很多很多的模型.他们在我的应用程序的第一页上使用,我在加载它们时遇到问题.

两个型号只有少量项目(<200),我想在每个findAll请求中完全加载两个模型.但是当第一个模型被加载时,Ember开始逐项获取第二个模型的缺失数据.如果我尝试单独加载模型,我会收到错误并且必须设置{async:true}hasManyattr.出于某种原因,Ember没有认识到第二个模型的请求的json.

无论如何都要获取两个模型并等到两个负载再继续之前?

谢谢.

ember.js ember-data

16
推荐指数
1
解决办法
1万
查看次数

如何从Ember应用程序模板中的路径访问数据?

我正在按照Ember 2.3的文档进行操作,似乎找不到任何基本的东西:如何访问主模板中路由模型钩子提供的值:application.hbs

路线/ client.js

// ...
export default Ember.Route.extend({
    model() {
        return {
            navigation: [
                {
                    title: "Projects",
                    link: "projects"
                },
                {
                    title: "My Specifications",
                    link: "specs"
                }
            ]
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

模板/ application.hbs

<nav>
   {{#each navigation as |navItem|}}
      <li>{{#link-to navItem.link}} {{navItem.title}} {{/link-to}}</li>
   {{/each}}
</nav>
{{outlet}}
Run Code Online (Sandbox Code Playgroud)

就像现在一样,导航对象可以被路径的模板(client.hbs)访问,但不能访问应用程序模板.

javascript ember.js ember.js-2

8
推荐指数
1
解决办法
5483
查看次数

如何在afterModel钩子中访问params

我在我的model钩子里使用RSVP.hash .但是我需要我的路线来加载基于url(包含动态段)的动态数据.即this.route('foo', {path: ':id'}).

所以我决定将一些东西移出afterModel钩子.

但是,我需要执行商店params(用于分页):

model(params) {
  this.set('params', params);
  return this.store.findRecord('foo', params.foo_id);
},

afterModel: function(model) {
  console.log(this.get('params')); // logs the right params
  let params = this.get('params');

  // This store query needs access to params
  this.store.query('bar', { filter: { 'foo-id': model.get('id') }, page: { number: (params.page ? params.page : 1) } }).then(bars => {
    this.controller.set('bars', bars);
  });
}

setupController(controller, model) {
  this._super(controller, model);

  this.set('bars', bars);
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有这个,它有效:

model(params) {
  this.set('params', params);
  ... …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

4
推荐指数
2
解决办法
2356
查看次数

标签 统计

ember.js ×4

ember-data ×2

ember-cli ×1

ember.js-2 ×1

javascript ×1