2012-01-03 8 views
1

ツールバーにボタンのリストを動的に作成しようとしています。イベントはオフに行くされていない、と私はそこのプロパティを変更しようとすると、私が取得する「キャッチされないのtypedefを:未定義でmethed setcaptionを呼び出すことはできません」私はボタンを作成するには、次のコード、Enoy、動的にコンポーネントを作成し、プロパティを変更したり、イベントを発生させたりすることはできません

LoadTabs: function() 
{ 
    this.$.tabs.createComponents([ 
    {name: "mycusbut", caption: "b",onclick: "btnClick" }, // this event never goes off!!!! 
    {caption: "b"}, 
    {caption: "c"} 
]); 
// this.$.frediop.setCaption("Put some text here"); // handle the button click 
}, 

イベントbtnClick決してを持っていますそのプロパティを変更しようとしているコードが表示されます。

btnClick: function() 
{ 
    this.$.mycusbut.setCaption("Put some text here"); // get a undefined object error 
} 

答えて

2

ここでボタンを作成する方法は、タブオブジェクトに表示されるようになります。あなたはタブオブジェクト上のボタンを作成しているので呼び出されていないコードに関する第二の問題は...もう少し狡猾です

this.$.tabs.$.mycusbut 

:あなたがそれらを参照したい場合は、次の構文を使用する必要がありますおそらくあなたが望むものではないタブオブジェクト上の関数を探しています。タブオブジェクトを独自の種類に分離し、ボタンをクリックしたときに発生するイベントを持つか、オブジェクトを作成するための別のアプローチを取る必要があります。おそらく、あなたが動的にボタンを作成できるようなツールバーを作るのはよいアプローチでしょうか?

編集:さらに簡単な方法は、createComponentに所有者をメインの種類に設定するように指示することです。次のように変更してください。

this.$.tabs.createComponents([ 
    {name: "mycusbut", caption: "b",onclick: "btnClick" }, 
    {caption: "b"}, 
    {caption: "c"} 
], {owner: this}); 

これでコードは正常に動作するはずです。

+0

こんにちは、ありがとう、$を説明できますか、なぜ私は行く –

関連する問題