模板中的Ember数据未定义但在控制台中可访问

时间:2015-09-16 16:04:43

标签: javascript ember.js

我相对较新,我刚刚第一次看到它,我使用ember-cli-mirage作为模拟服务器并且遇到了一些问题。

在我的models / groups.js中我有

export default DS.Model.extend({
  name: DS.attr('string'),
  serverType: DS.attr('string', {defaultValue: 'Web Server'}),
  protectionMode: DS.attr('string', {defaultValue: 'High'}),
  protectionLevel: DS.attr('string', {defaultValue: '=)'}),
  bps: DS.attr('number'),
  pps: DS.attr('number'),
  protectedHosts: DS.attr('string', {defaultValue: '1.0.0.0'}),
  lastModified: DS.attr('number', {defaultValue: 1}),
  complete: DS.attr('string')
});

我最初在任何地方都没有默认值,但是一旦我添加它们,我的模板中显示的内容出现在serverType,protectionMode,protectionLevel但不是lastModified或protectedHosts

My mirage / config.js

export default function() {
  this.get('/groups', function(db, request) {
    console.log(db.groups)
    return {
      data: db.groups.map(attrs => (
        {type: 'groups', id: attrs.id, attributes: attrs}
      ))
    };
  });

  this.post('/groups', function(db, request) {
    let attrs = JSON.parse(request.requestBody);
    let group = db.groups.insert(attrs);
    return {
      data: {
        type: 'groups',
        id: group.id,
        attributes: group
      }
    };
  });

  this.patch('/groups/:id', function(db, request) {
    let attrs = JSON.parse(request.requestBody);
    let group = db.groups.update(attrs.data.id, attrs.data.attributes);
    return {
      data: {
        type: 'groups',
        id: group.id,
        attributes: group
      }
    };
  });

  this.del('/groups/:id');
}

我在/ groups get中进行的控制台日志记录显示了我的海市蜃楼/工厂的所有正确数据

蜃/工厂/ groups.js

import Mirage, {faker} from 'ember-cli-mirage';

export default Mirage.Factory.extend({  
    name(i) { return `Protection Group ${i + 1}`; },
    serverType(i) { return `Custom Server Type ${i + 1}`;},
    protectionMode: 'High',
    protectionLevel: '=)',
    lastModified(i) { return `${i+1} Weeks`; },
    bps(i) { return parseInt(Math.floor((Math.random() * i) + 100 * i)) },
    pps(i) { return parseInt(Math.floor((Math.random() * 100) + i)) },
    protectedHosts(i) { return `10.1.2.1${i+1}`; },
    complete: false
});

任何人都知道为什么有些数据显示为未定义且有些数据未显示,为什么某些默认值有效但有些数据不然?

1 个答案:

答案 0 :(得分:0)

对于protectedHostslastModified,您拼写错误defaultValue。您有defualtValueua被撤销了。)