這行代碼不起作用。使用訪問ko.computed內部的本地函數
林迪朗達爾/敲除和我有這樣
define(function() {
var vm = function() {
compute: ko.computed(function() {
return _compute(1); // fail
});
var _compute= function(e) {
return e;
}
}
return vm;
});
的結構基本上我只是試圖訪問私有方法_compute - 但KO.compute犯規允許?
即使我公開,我仍然無法訪問它。 我試圖在這個實現revealing pattern,但仍然沒有運氣!
var vm = function() {
compute: ko.computed(function() {
return this._compute(1); // still failing
});
this._compute= function(e) {
return e;
}
}
更新:到目前爲止,僅這一項工作
define(function() {
var vm = function() {
var self = this;
var self._compute= function(e) {
return e;
}
compute: ko.computed(function() {
return this._compute(1); // works
}, self);
}
,但就像我說的,_compute並不意味着被曝光。
更新:實際上是它的另一個錯誤。
這一塊現在工作
限定(函數(){
var vm = function() {
var self = this;
var _compute= function(e) {
return e;
}
compute: ko.computed(function() {
return _compute(1); // works
});
}
基本上,只需要ko.computed道具之前聲明的私有函數!
謝謝!
附加說明:
爲什麼需要在計算函數之前聲明它?在第一行中,我更喜歡所有的「屬性」,而底部的函數則更喜歡。我覺得很整潔。
請問您能否提供jsfiddle演示? –
'compute:ko.computed(function(){'你正在定義一個標籤LOL –
http:// jsfiddle。淨/ tarabyte/CLTBN/ –