2016-09-08 27 views
0

我想用鬍子句法進行本地化文本。
是否有任何方法使用當前上下文內插字符串?運行時字符串插值

import Ractive from 'ractive'; 

var Dashboard = Ractive.components.Dashboard = Ractive.extend({ 
template: "<div>{{message}}</div>", 
data() { 
    return { name:'Mike', message: '' } 
}, 
oncomplete() { 
    this.set('message', 'hello my friend, {{name}}') 
} 
}); 

回答

0

有可能是一個更好的辦法現在就這樣做,但你可以用諧音做到這一點。使用部分渲染消息,並更改部分模板。唯一值得注意的是你必須放棄/重新渲染局部,以使其識別出它的模板已經改變,因此布爾檢查局部。我在模板中添加了一個按鈕,當點擊演示時,它會調用changeMes​​sage()。

import Ractive from 'ractive'; 

Ractive.components.Dashboard = Ractive.extend({ 
    template: '<div>{{#render}}{{>messagePartial}}{{/}}</div> <button on-click="changeMessage()">Change message</button>', 

    data() { 
    return { name: 'Mike', message: '', render: true }; 
    }, 

    partials: { 
    messagePartial: '{{message}}' 
    }, 

    changeMessage() { 
    this.partials.messagePartial = 'hello my friend, {{name}}'; 

    // force partial to re-render 
    this.set('render', false); 
    this.set('render', true); 
    } 
});