表达式与某些字符串的小胡子模板连接

Mustache template concatenation of expression with some string

我们如何将表达式值与某个字符串连接起来并计算结果表达式?

如果我们有一个对象前缀并且我想将它的值与某个字符串连接起来。例如

{{prefix"Output"}}

我想先计算前缀值,然后将它与 "Output" 字符串连接起来。

所以结果表达式可能类似于 "UnitOutput",其中 Unit 是前缀的值。

最后,我希望对上面的串联表达式进行求值,在这种情况下,结果值将是 "UnitOutput" 的值。

喜欢

"{{variable}} Output"

应该可以

关键字 prefix 对我不起作用。我假设它是一个保留关键字。我将在此示例中使用 pref

Html

<paper-input value="{{pref}}"></paper-input>
<span>Output: {{result}}</span>

Javascript

Polymer({
    pref: '',
    result: 'Output',
    prefChanged: function(oldValue, newValue) {
        this.result = newValue + 'Output';
        // evaluate result here
    }
}

或者您可以使用聚合物观察者模式

Html

<paper-input value="{{xyz.prefix}}"></paper-input>
<span>Output: {{result}}</span>

Javascript

Polymer({
    result: '',
    observe: {
        'xyz.prefix': 'validate'
    },
    validate: function(oldValue, newValue) {
        this.result = newValue + 'Output';
    },
    ready: function() {
        this.xyz = {
            prefix: 'test'
        }
    }
});

如果您正在观察数组,请参阅 observe-js

使用 RactiveJS 很简单:

{{ this[prefix + "Output"] }}

参见http://jsfiddle.net/236bsky0/this 指的是当前上下文或根目录,但如果您愿意,也可以是另一个参考。

您还可以使用函数:{{ getValue(variable) }} 在您的元素中,只需声明您的功能: getValue: 函数(var) { return var + "Output";}