アイコンを含むドラッグ可能なボックスで構成されるポリマーを使用してカスタム要素を設定しようとしています。要素上にicon
属性を指定してアイコンを定義できるように、要素上にsetIcon
メソッドを定義するのではなく、宣言的な要素を作成できるようにします。要素の属性を設定するとエラーが発生します "ポリマーを使用して未定義のプロパティ '...'を設定できません
私は試しました
:要素プロトタイプのproperties
属性を含めることによって、属性を処理するために、私の要素を設定するために、私は私にこのような何かに見える要素コードを与え、ポリマー中に供給しています別のファイルで
var elementProto = {
is : "my-element",
behaviors : [someOtherProto],
properties : {
icon : {
"type" : "String",
"observer" : "_iconObserver",
}
},
_iconObserver : function(){ /* Functionality for adding icon */}
};
elementProto.otherMethods = various functions;
Polymer(elementProto);
は、私はそのようにように(それに関連付けられたHTMLファイルを経由して私の新しい要素をインポートした後)、別のjavascript関数で
setAttribute
を使用して、私のアイコンの属性を設定しようとしている:
var newElement = document.createElement("my-element");
newElement.setAttribute("icon", "some/icon/path.png");
理想的には、これを新しいパスを引数としてオブザーバー関数を起動し、新しい要素の画像のURLをそのパスが何であっても設定します。代わりに、Chromeでエラーが表示されます:
Uncaught TypeError: Cannot set property 'icon' of undefined
なぜこのエラーが発生していますか?修正するにはどうすればよいですか。デバッグの
注:
私は、ポリマーコードに掘られ、エラーがこのラインに由来することを発見しました:
var model = this._clientsReadied ? this : this._config;
両方this._clientsReadied
とthis._config
は未定義で、このエラーの原因となっていますメソッド。name
が属性としてmodel
に設定されています。しかし、私はこれらの属性がなぜ定義されないのか知るためにポリマーについて十分に知りません。
'elementRef.set(' property '、' value ') 'のようなポリマーの' set'メソッドを使ってみましたか? – Alan
@Alan私は 'element.setAttribute'、' element.set'、 'Polymer.dom(element).set'(未定義)、' Polymer.dom(element).setAttribute'を試しました。 – ckersch
ご存じのように、私はあなたのコードで[fiddle](https://jsfiddle.net/375chjk2/)を作ろうとしましたが、うまくいきます。 – Alan