John Resig の単純な javascript inheritanceで構築されたビュー モデルのオブザーバブルの 1 つにバインドされた HTML 要素があります。
<div data-bind="with: selectedItem()">
...
<div data-bind="click: $root.save">Save changes</div>
...
</div>
私のViewModelは次のようになります。
var ViewModel = Class.extend({
init: function(type){
this.type = type;
this.selectedItem = ko.observable({name: "My name"});
},
save: function(data){
alert(this.type);
}
});
ViewModel#save の「this」は「selectedItem()」への参照です。つまり、"this" は、関数に渡される "data" を参照します。代わりに、ViewModelのインスタンスにアクセスするにはどうすればよいですか?
編集済み
ここでの意図は、ViewModel から関数を継承することです。「this.type」にそれぞれ「first」と「second」としてアクセスしたいと思います。
var FirstViewModel = ViewModel.extend({
init : function() {
this._super('first');
}
});
var SecondViewModel = ViewModel.extend({
init : function() {
this._super('second');
}
});