我相对较新,我刚刚第一次看到它,我使用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
});
任何人都知道为什么有些数据显示为未定义且有些数据未显示,为什么某些默认值有效但有些数据不然?
答案 0 :(得分:0)
对于protectedHosts
和lastModified
,您拼写错误defaultValue
。您有defualtValue
(u
和a
被撤销了。)