作成しているカスタムローカリゼーション要素でPolymer 1.xの問題が発生しています。 HTMLの関数にバインドすると、オブジェクトとして引数を渡すことはできません。 my要素のtextContentは、関数から返された値ではなく、関数全体を文字列として取得します。例またはこのjsfiddle:https://jsfiddle.net/4n2da6sr/1/については、以下のサンプルコードを参照してください。htmlで第2引数としてオブジェクトとバインドするポリマー関数のバインド
HTML:
<dom-module id="x-example">
<template>
<h1>[[getText('Hello world', {context: 'general'})]]</h1>
</template>
</dom-module>
<x-example></x-example>
のJavaScript:
let strings = {
general: {
'Hello world': {
message: 'Hola Mundo'
}
};
Polymer({
is: 'x-example',
getText: function(key, options = {context: 'general'}) {
let context = options.context;
let localMessage = key;
if (strings && strings[context][key]) {
let message = strings[context][key].message;
localMessage = message || key;
}
return localMessage;
}
});
これのgetText関数は単にローカライズされたメッセージやキーを返し、メッセージをフィルタリングするための追加のオプションとしての第2のパラメータ(オブジェクト)を使用します。したがって、上記の例では、私はの出力を得ることを期待したい:
"Hola Mundo"
をしかし、その代わりに、私は、文字列として評価関数全体を取得:
"getText('Hello world', {context: 'general'})"
これですべてのヘルプははるかに高く評価されるだろう。
私は、ポリマーを使用していませんでしたが、私はあなたの要素のIDを使用してリンケージのためにそれに頼ることは異なるIDが使用されるシャドウDOMに間違って行くことを読んだ –
@AMacdonaldありがとうございますが、これは単なるコード例ですので、ここを読みやすくするためのものです。 – jordan