运行时字符串插值

时间:2016-09-08 23:37:05

标签: mustache ractivejs string-interpolation

我希望有胡子语法的本地化文本 有没有办法使用当前上下文插入字符串?

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

1 个答案:

答案 0 :(得分:0)

现在可能有更好的方法,但你可以通过局部来实现这一目标。使用partial渲染消息,然后更改部分模板。唯一需要注意的奇怪之处在于你必须取消渲染/重新渲染部分以使其识别出其模板已经改变,因此bool检查部分。我在模板中添加了一个按钮,当单击演示时调用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);
  }
});