自定义字段中收集
问题描述:
使用时,我已经在骨干网中定义像这样一个模型,收集没有定义:自定义字段中收集
$(document).ready(function() {
DeviceModel = Backbone.Model.extend({
urlRoot: '/ajax/mvcDevices',
validationRules: {
name: [{ rule: 'required'}],
mac: [
{ rule: 'required' },
{ rule: 'isMacAddress' }
],
speed: [{ rule: 'required'}]
},
preprocess: {
name: ['clean', 'trim'],
speed: ['clean', 'trim']
}
});
DeviceCollection = Backbone.Collection.extend({
url: '/ajax/mvcDevices',
Model: DeviceModel
});
});
然而,一个集合里,这些模型时,列出的自定义字段都没有定义的。我在这里错过了什么?如果你创建一个new
运营商defaults
所有属性将被复制到新的对象模型
var DeviceModel = Backbone.Model.extend({
urlRoot: '/ajax/mvcDevices',
defaults: {
validationRules: {
name: [{ rule: 'required'}],
mac: [
{ rule: 'required' },
{ rule: 'isMacAddress' }
],
speed: [{ rule: 'required'}]
},
preprocess: {
name: ['clean', 'trim'],
speed: ['clean', 'trim']
}
}
});
var DeviceCollection = Backbone.Collection.extend({
url: '/ajax/mvcDevices',
Model: DeviceModel
});
var collection = new DeviceCollection();
var model = new DeviceModel({id: 1});
collection.add(model);
console.log(collection.get(1).get('validationRules'));
console.log(collection.get(1).get('preprocess'));
从骨干文档,因此:
答
您可以使用defaults
模型属性来执行这样的默认值它取决于您创建模型对象的方式。
'Model:DeviceModel' =>'model:DeviceModel'? (小写'm') – WiredPrairie 2013-03-26 12:09:17
@WiredPrairie(facepalm)就是这样,一直注视着我的脸。非常感谢。 – Nidonocu 2013-03-26 13:48:46