1

バックボーンフォームは初めてです。オプションにバックボーン コレクションを渡す Select フィールドを作成したいと考えています。BBF のドキュメントを読んでも明確にはなりません。

--- ドキュメントから取得 ------

バックボーン コレクションに関する注意事項 オプション属性としてバックボーン コレクションを使用する場合、コレクション内のモデルは toString() メソッドを実装する必要があります。これにより、<option> のラベルが設定されます。モデルの ID が value 属性に入力されます。

---- ドキュメントから取得 -----

誰かが幹の例で良いステップを提供できますか?

私は次のコードを持っています

var ListModel = Backbone.Model.extend({
    defaults: {
        name: '',
        value: ''
    }
});

var Collection = Backbone.Collection.extend({
    model: ListModel
});

var collection = new Collection([
    {name: 'test1', value: '1'},
    {name: 'test2', value: '2'},
    {name: 'test3', value: '3'}
]);

var User = Backbone.Model.extend({
    schema: {
        field1: { type: 'Select', options: collection },
        field2: { type: 'Select', options: ['Select 2']},
        field3: { type: 'Select', options: ['Select 3']}
    },

    fieldsets: {
        legend: 'Select Form',
        fields: ['fields1', 'fields2','fields3']
    },

    idPrefix: null
}

var user = new User();

var form = new Backbone.Form({
    model: user,
    idPrefix: null
}).render();

$('#main').append(form.el);

Field1 ドロップダウンは [object Object] 値でレンダリングされます

4

1 に答える 1

2

toStringにメソッドを追加する必要がありますListModel。次に例を示します。

var ListModel = Backbone.Model.extend({
    defaults: {
        name: '',
        value: ''
    },

    toString: function() {
        return this.get('name');
    }
});
于 2014-04-08T11:47:38.273 に答える