2015-04-02 206 views
0

當自定義方法調用另一個自定義方法時,第二個方法中的任何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()調用失敗。錯誤是「未定義不是函數」,因爲this.get()在此上下文中未定義。

這樣做的正確方法是什麼?

回答

1

我想,你需要通過上下文調用該方法時:

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

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