ember.js - 将 Ember 数据与 Fixtures 结合使用并返回单个对象

标签 ember.js

我有以下代码:

App.UserAdapter = DS.FixtureAdapter.extend({});

App.User = DS.Model.extend({
    activity: DS.hasMany('activity'),
    firstname: DS.attr('string'),
    lastname: DS.attr('string'),
    username: DS.attr('string'),
    email: DS.attr('string'),
    phone: DS.attr('string')                    
});

还有一个固定装置:

App.User.FIXTURES = [
    {
        id: 1,
        firstname: 'John',
        lastname: 'Doe',
        username: 'jdoe',
        email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="563c323933163726263a337835393b" rel="noreferrer noopener nofollow">[email protected]</a>',
        phone: '408-111-1111'
    }
];

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('user');
   }
});

现在我想在模板中访问这些数据:

  <script type="text/x-handlebars" id="index">
  <h2>Login</h2>
  {{#each}}
    <ul>
    <li>User: {{firstname}} {{lastname}}</li>    
    <li>User Name: {{username}}</li>
    <li>Password: {{input}}</li>
    </ul>
    {{/each}}
  </script>

它迫使我将它作为数组访问。我在这里做错了什么吗?

最佳答案

当您使用 DS.Store#find 并且不传递 ID 时,它将返回该类型的所有记录。

如果您想在商店中查找特定记录,您需要传递该记录的 ID。

例如查找id为1的用户:

App.Router.map(function() {
  this.route("user", { path: '/users/:id' });
});

App.UserRoute = Ember.Route.extend({
  model: function(params) {
    return this.store.find('user', params.id);
  }
});

http://emberjs.com/api/data/classes/DS.Store.html#method_find

关于ember.js - 将 Ember 数据与 Fixtures 结合使用并返回单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247998/

相关文章:

javascript - emberjs didRender 不工作

javascript - 检查 Ember.js 中每个循环中的重复项

javascript - 仅在 EmberJS 中实现多个 promise 后才执行代码

javascript - Ember 嵌套路由和 Promise

ember.js - ember-simple-auth 更新 session 中的数据

ember.js - 在 Ember 中将商店扩展为对象还是服务更好?

javascript - 在 {{#each}} 中独立于其他行切换行 - Ember

javascript - ember简单例份验证验证回调问题

javascript - emberjs 没有处理该事件

javascript - 使用 Ember Data 删除多条记录(批量删除)的正确方法是什么?