免責事項: 私は (AngularJS から来た) Backbone.js を初めて使用するので、これがどのように機能するかについて不正確なメンタル モデルを持っている可能性があります。
モデルに属性を作成しているオブジェクト characterNodes があります。characterNodes は次のようになります。
var characterNodes = {
character_1: {
stories: [// list of Stories]
},
character_2: {
stories: [// list of Stories]
}
...
}
私のバックボーン モデルは次のようになります。
var StoryGraph = joint.dia.Graph.extend({
initialize: function() {
// Call parent constructor
StoryGraph.__super__.initialize.apply(this, []);
this.set('characterNodes', characterNodes);
this.on('change:characterNodes', function() {
alert('test');
});
}
});
各ストーリーには、アプリケーションの他の場所で変更されるプロパティ「isUnlocked」があります。このプロパティが変更されるたびに、イベントを発生させたい (つまり、アラート 'test' がポップアップする必要があります)。上記のコードでは、イベントは発生しないようです。
これが機能するはずかどうかをバックボーンのドキュメントから明確に理解することはできません- characterNodes のプロパティ(またはサブプロパティ、サブサブプロパティなど)が変更されるたびに on('change:characterNodes') が起動します? それとも、オブジェクトへのポインターが変更されたとき、つまり別のオブジェクトに置き換えられたときだけですか? それとも私は何か他のことを間違っていますか?ありがとう!