0

というモデルscoreと というコレクションがありscoresます。localStorageただし、モデルは親コレクションからプロパティ (さらに言えば、任意のプロパティ) を継承していないようです。ここで何か不足していますか?

RequireJS でバックボーンを実行します。

models/score.js

define([
    'underscore',
    'backbone',
    'localstorage'
], function(_, Backbone, Store){
    var ScoreModel = Backbone.Model.extend({
        defaults: {
            board_id: null,
            ns_pair: null,
            ew_pair: null,
            ns_score: null
        },
        validate: function(attrs, options){
            if( isNaN(attrs.board_id) || attrs.board_id < 1 ){
                return 'Invalid Board ID!';
            }
        },
        localStorage: new Store("ScoreCollection")
    });
    return ScoreModel;
});

collections/scores.js

define([
    'underscore',
    'backbone',
    'models/score',
    'localstorage'
], function(_, Backbone, ScoreModel, Store){
    var ScoreCollection = Backbone.Collection.extend({
        model: ScoreModel,
        localStorage: new Store("ScoreCollection")
    });
    return ScoreCollection;
});

main.js

require.config({
  paths: {
    // Major libraries
    jquery: 'libs/jquery/jquery.min',
    underscore: 'libs/underscore/underscore.min',
    backbone: 'libs/backbone/backbone.min',

    // Require.js plugins
    text: 'libs/require/text',

    // Backbone.js plugins
    localstorage: 'libs/backbone/localstorage',

    // Just a short cut so we can put our html outside the js dir
    // When you have HTML/CSS designers this aids in keeping them out of the js directory
    templates: '../templates'
  }
});

// Let's kick off the application

require([
  'app'
], function(App){
  App.initialize();
});
4

1 に答える 1

0

バックボーン モデルはバックボーン コレクションから継承しません。それらは、独自のプロパティとメソッドで「拡張」する基本 Backbone.Model の単なる拡張です。コレクション、同じ取引。コレクションのモデルが、定義した特定のモデルに基づいていることを指定できるため、コレクションがコレクションに追加されると、モデル コンストラクターを使用してそのコレクション内の各モデルのインスタンスが作成されますが、直接の継承関係はありません。必要に応じて、たまたまコレクションのインスタンスであるモデルにプロパティを定義できます。

于 2013-03-09T06:38:21.777 に答える