0

以下のコードは、メイン ビュー、つまり main.js 用です。ここで、intro.js、つまり別のビューを呼び出しました。今、テンプレートでデータをレンダリングできません。私は煎茶を初めて使用します。宣言で何かを台無しにしたと思います

Ext.define("casta.view.Main", {
    extend: 'Ext.tab.Panel',
    apitoken:'NULL',
    requires: [
        'Ext.TitleBar',
        'Ext.Video',
        'casta.view.Intro'

    ],
    config: {
        tabBarPosition: 'top',

        items: [


                { title:'Intro',
                   xclass: 'casta.view.Intro' ,
                   iconCls:'user'
                 }

                 ]
    }
});

intro.js は以下のとおりです。変数を宣言しているときに、何かを台無しにしたと思います。空白の画面が表示されています

Ext.define('casta.view.Intro', {
extend: 'Ext.tab.Panel',
//alias: 'widget.currentDate', //this makes it xtype 'currentDate'
//store: 'CurrentDateStore',


initComponent: function(){
    planetEarth = { name: "Earth", mass: 1.00 };

    tpl = new Ext.Template(['<tpl for".">', '<p> {name} </p>', '</tpl>'].join(''));
    tpl.compile();
    //this.callParent(arguments);

},
html:tpl.apply(planetEarth)
});

以下はコンソールログです

tpl is not defined

[このエラーでブレーク]

html:tpl.apply(planetEarth)
4

1 に答える 1

1

html変数が設定された後、initComponentが呼び出されます。代わりに、次のように tpl を定義します。

Ext.define('casta.view.Intro', {
    extend: 'Ext.tab.Panel',
    tpl: '<p> {name} </p>',
    initComponent: function(){
        //Be sure to use the var keyword for planet earth, otherwise its declared as a global variable
        var planetEarth = { name: "Earth", mass: 1.00 };
        this.setHtml(this.getTpl().apply(planetEarth));
    }
});

これはパターンに従って機能しますが、おそらくそのコンポーネントを次のように定義する必要があります。

Ext.define('casta.view.Intro', {
    extend: 'Ext.Container',
    tpl: '<p> {name} </p>'
});

次に、次のようにインスタンス化します。

Ext.define("casta.view.Main", {
    extend : 'Ext.tab.Panel',
    apitoken : 'NULL',
    requires : ['Ext.TitleBar', 'Ext.Video', 'casta.view.Intro'],
    config : {
        tabBarPosition : 'top',
        items : [{
            xclass : 'casta.view.Intro',
            title : 'Intro',
            iconCls : 'user',
            data: {name: "Earth", mass: 1.00 }
            }]
    }
});
于 2012-05-25T16:03:53.253 に答える