遇到这样问题我用 ajax 加载如下javascript脚本var Test= new Ext.Panel({
    title: "订餐",
    height:100});var orderingMealPanel = new Ext.Panel({
    title: "订餐",
    tbar: orderingMealToolbar,
    items: [Test]
});
但执行 orderingMealPanel   添加不上 Test 面板 如果是 直接 <script src =""> 这样方式引用就可以,请问为什么!!!

解决方案 »

  1.   

    ajax加载脚本是啥意思?loader?
    如果是loader的话,必须是component的方式,所返回的所有文本extjs都将执行component的add操作,不合法的将异常,不显示UI
      

  2.   

    var Test= new Ext.Panel({
      title: "订餐Test",
      height:100});var orderingMealPanel = new Ext.Panel({
      title: "订餐panel",
      tbar: orderingMealToolbar,
      height:200
      items: [Test]
    });你先看看效果 应该是可以出来的,
    你的那个之所以没有处理  ,是因为你出来了 你没有看到
      

  3.   

    items: [Test], 试试去掉中括号
      

  4.   

    var Test= new Ext.Panel({
    title: "订餐Test",
    height:100
    });var orderingMealPanel = new Ext.Panel({
    title: "订餐panel",
    tbar: orderingMealToolbar,
    height:200,
    width:200,
    items: [Test]
    });
    试试
      

  5.   

    楼主尚未了解到Ext渲染的过程 
    new了panel 面板已经被渲染出来了 把已经渲染后的对象放到items里 您觉得对么?
    正常的思路:
    通过ajax动态构造items中的对象(不是new出来的 是js对象) push到items数组中去 最后渲染主面板
      

  6.   


    兄台,对象new出来还没有渲染吧?如果本身没有设置render或者调用render方法,是由他的容器来控制渲染的
    不知道说的对不对
      

  7.   

    items: [Test]
    是这个有问题,你好好检查一下
      

  8.   

    楼主,我悄悄的告诉。
    因为items里面放的Panel对象。
    所以呢,可以这么写
    items:[new Ext.Panel({
      title:'test',
      height:200})]
    或者你在外面定义一个
    var p1=new Ext.Panel({
       title:'t1',
       height
    });
    items:[p1]懂了没?你可以查下你的API
      

  9.   

    不好意思 上面没看清楚
    第一。你的Panel没渲染。第二你的tbar貌似有问题Ext.onReady(function(){
    var Test= new Ext.Panel({
      title: "订餐",
      height:100
     });var orderingMealPanel = new Ext.Panel({
      title: "订餐",
     // tbar: orderingMealToolbar,
       renderTo:Ext.getBody(),
       height:200,
     items: [Test]
    });
    });
    这样是可以的
      

  10.   

    我又测了下。如果你放在Ext.onReady里面的话,不写渲染也能出,不过最好是加上