2012-04-23 10 views
0

パラメータを使用してBackbone.jsでモデルとビューを作成することはできますか?
私はパラメータを使用してBackbone.jsでモデルとビューを作成することはできますか?

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

のような単純な試みるが、私はthis.setが機能ないメッセージが表示されました。

+0

を試すことができ、属性のいずれかにアクセスしたい

のであれば、あなたは最初のモデルをインスタンス化しましたか?エラーが発生した場所でコードを表示できますか?また、上のコードではaとa)がありません。それが現れても、そのコードは実行されません。 – tkone

+0

@tkone私は貼り付けるのを忘れていました})しかし、私はコードを持っています。 – Damir

答えて

2

サンプルコードに構文エラーがありますが、うまくいくはずです。また、あなたはちょうどしようとしているように見える、しかし、あなたのサンプルコードから

(ここでは、コードhttp://backbonejs.org/docs/backbone.html#section-28を参照)、モデルのattributes最初のパラメータとしてを占め、2番目のパラメータとしてジェネリックoptionsオブジェクトを参照する必要があります自動的に処理されるモデルにデータを渡します。


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" 
}); 
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'); 

だから、場合には、あなたの価値はあなたを検証しません。それに対してエラーを受け取ることができます。

0

オブジェクト「これは」「属性」として、すべての値を持っています。あなたは

alert(this.attributes.test)

関連する問題