0

パラメータを使用して Backbone.js でモデルとビューを作成することは可能ですか?
私は簡単に試してみます

    var TestModel = Backbone.Model.extend( {
        initialize: function(test){
        this.set('test',test);
        alert("test");
    }
});

しかし、メッセージthis.set is not a functionを受け取りました。

4

3 に答える 3

2

サンプル コードに構文エラーがありますが、問題なく動作するはずです。また、モデルattributesを最初のパラメーターとして説明し、汎用optionsオブジェクトを 2 番目のパラメーターとして参照する必要があります (こちらのコードを参照http://backbonejs.org/docs/backbone.html#section-28 ) 。

ただし、サンプル コードからは、自動的に処理されるモデルにデータを渡そうとしているように見えます。


var TestModel = Backbone.Model.extend({});

var t = new TestModel({foo: "bar"});

console.log(t.get("foo"));

または、いくつかのオプションを取得しようとしている場合は、次のようにすることができます。


var TestModel = Backbone.Model.extend({
  initialize: function(attrs, options){
    console.log(options.foo);
  }
});

var t = new TestModel(null, {
  foo: "bar"
});
于 2012-04-23T13:36:04.757 に答える
1

短い答えはイエスです。あなたは十分なコードを示していませんでしたが、これはうまくいきます:

var TestModel = Backbone.Model.extend({});

var t = new TestModel({test: 'test'});

t.get('test');
>>> test

メソッドに何も渡すことはできませんがinitialize、オブジェクトをインスタンス化するときにハッシュを渡すことができます。

ただし、作成時に検証を行わないため (常に有効なモデルが返されます)、次のことを行った方がよいでしょう:

var t = new TestModel();
t.set('test', 'test');

したがって、値が検証されない場合は、エラーを受け取ることができます。

于 2012-04-23T13:34:12.073 に答える
0

オブジェクト「this」は、すべての値を「属性」として持っています。したがって、いずれかの属性にアクセスしたい場合は、

あなたが試すことができます

alert(this.attributes.test)

于 2013-05-18T10:07:05.357 に答える