从另一个自定义方法调用自定义方法

时间:2015-04-02 13:13:00

标签: ractivejs

当自定义方法调用另一个自定义方法时,第二种方法中的任何this.get()引用都将失败。这是一个简单的例子(or full JSFiddle here):

var ractive = Ractive({
    ...
    data: {
        Title: "Just an example",

        Method1: function() { return this.get("Title"); },
        Method2: function() { return this.get("Method1")(); }
    }
});
....

<div id="template">
    {{ Method1() }}   <!-- This works. It outputs "Just as example" -->
    {{ Method2() }}   <!-- This throws an error -->
</div>

自己调用Method1()可以正常工作,但Method2()调用时失败。错误是&#34; undefined不是函数&#34;因为this.get()在此上下文中未定义。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为,在调用该方法时需要传递上下文:

Method2: function() { return this.get("Method1").call(this); }

演示:http://jsfiddle.net/aq4w3okr/5/