0

私の Extjs 4.1.1a プロジェクトでは、

フィドル(このフィドルは機能していません。参照用です)

を使用してHTML(コントローラー内)の値を変更しています

Ext.apply(weekNotifications,{html: {"hello"});

しかし、ページ(ビュー)は更新されていません。weekNotificationsChromeコンソールで変数を確認すると、上記の関数の後、innerHTML追加したように「こんにちは」ですが、weekNotifications.el.dom.innerHTML「通知はこちら」(古いテキスト)です。

私も試しました:

weekNotifications.update("Hello");   //same problem as stated above

私が試したとき:

weekNotifications.el.dom.innerHTML = "hello";

エラーが発生しています - 未定義の dom を呼び出せません

より良い理解のために、私はの画像を貼り付けていますconsole.log(weekNotifications)

ここに画像の説明を入力


ここに画像の説明を入力

4

4 に答える 4

3

weekNotification問題は、html を変更しようとしたときに変数がレンダリングされなかったことです。だから私は私のために働いた次のことをしました:

weekNotifications.on(
      'render',
      function(self){
         self.update("hello");
      },
      this
);
于 2013-03-20T12:29:02.670 に答える
0

コメントで言ったように、どういうわけか間違ったコンポーネントへの参照を取得しています。update使用する正しい方法は次のとおりです。

Ext.require('*');

Ext.onReady(function() {

    var ct = new Ext.container.Container({
        renderTo: document.body,
        html: 'Foo'
    });

    setTimeout(function(){
        ct.update('Bar');
    }, 500);

});
于 2013-03-20T09:06:23.903 に答える
0

を使用して ExtJS コンポーネントの更新メカニズムをバイパスしない方がよいでしょうinnerHTML。これは混乱を招きます。とはいえ、実質的に同じ名前 (innerHTML) を持つ 2 つの異なるプロパティを混同することに注意してください。最初の図で下線を引いたものは、ネイティブ DOM ノードによって所有されていると思われるように、実際には所有者は ExtJS オブジェクトです (「xtype」プロパティを見てください)。これは、DOM オブジェクトと対話していないことを意味するため、その innerHTML プロパティを更新しても何も生成されません。

于 2013-03-20T10:07:59.470 に答える
0

コンポーネントのレンダリング後にhtmlを変更しようとしましたか(htmlを使用または変更する準備ができていることを確認します)。以下のように

Ext.require('*');

Ext.onReady(function() {

var ct = new Ext.container.Container({
    renderTo: document.body,
    html: 'Foo',
    listeners:{
        afterrender:function(ct){
            ct.el.dom.innerHTML = "hello"; //works
           // ct.update('Bar');  //works
        }
    }
});

});

于 2013-03-20T10:08:14.663 に答える