裁判:this jsfiddleRactive:从另一个模型执行一个模型的方法
(我不知道这是否是一个Ractive问题或一个普通的老JavaScript的问题)
我有一个Ractive模型, “项目”:
window.item = new Ractive({
el: "#container",
template: "<p>words</p>",
oninit: function() { window.little_ractive.set({ 'thing_to_do': this.do_this, 'item': this }); },
do_this: function() { this.say("yeah baby"); },
say: function(what) { console.log(what); }
});
请注意,该模型在初始化两个属性另一 Ractive模型,它看起来像这样:
window.little_ractive = new Ractive({
finish: function() { this.get('thing_to_do').apply(this.get('item')); }
});
我们可以观察到,little_ractive已经用指向项目模型及其“do_this”方法的属性正确初始化。
如果我们现在执行:
little_ractive.finish()
上下文(“本”)被错误地建立在“do_this”的方法,并返回一个错误“this.say()不是一个函数”
一个Ractive模型的方法如何从另一个模型执行?
更新: jsfiddle使用Ractive版本1.0.0 build9。 Ractive版本0.7.3不会出现这个问题,它可以像预期的那样工作。
更新:意外行为首次出现在版本0.8.0