2016-09-08 2 views
0

Je voudrais avoir du texte localisé avec une syntaxe moustache.
Est-il possible d'interpoler une chaîne en utilisant le contexte actuel?Interpolation de chaîne d'exécution

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}}') 
} 
}); 

Répondre

0

Il peut y avoir une meilleure façon de le faire maintenant, mais vous pouvez le faire avec des partiels. Rendre le message en utilisant un partiel, et changer le modèle partiel. La seule chose étrange à noter est que vous devez annuler/rediffuser le partiel pour lui faire reconnaître que son template a changé, d'où le bool check autour du partial. J'ai ajouté un bouton à votre modèle qui appelle changeMessage() lorsque vous cliquez sur démo.

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); 
    } 
});