你断点看看错误提示的item变量是什么。

解决方案 »

  1.   

    追踪不到啊~~定位的时候,走完getRoot()方法之后,就跳到他自己的类库中去了~~一直都没看到item~~~
      

  2.   

    追踪不到啊~~定位的时候,走完getRoot()方法之后,就跳到他自己的类库中去了~~一直都没看到item~~~你在Sources选项卡中点最右边那个"Pause on exceptions"按钮,点成蓝色,然后运行到ext的代码异常的地方会自动断点,不用手动跟,看看item是什么对象才能找到问题。
      

  3.   

    item是root~~说root里的很多方法找不到
      

  4.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
      

  5.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了
      

  6.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。
      

  7.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
      

  8.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
    那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢?
      

  9.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。
    这是详细截图,求问,有没有更好的方式~~~
      

  10.   

    item是root~~说root里的很多方法找不到
    截个图看看。
    你为什么要把store放到ViewModel里?
    感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
    那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢?所有store都在store文件夹内定义,在tree里初始化
      

  11.   

    查了一下文档,treepanel的store配置项不支持Json,只能为 Ext.data.TreeStore对象。http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.tree.Panel-cfg-store关键源代码如下:
            if (Ext.isString(store)) {
                store = me.store = Ext.StoreMgr.lookup(store);
            } else if (!store || !store.isStore) {
                store = Ext.apply({
                    type: 'tree',
                    root: me.root,
                    fields: me.fields,
                    model: me.model,
                    proxy: 'memory',
                    folderSort: me.folderSort
                }, store);
                store = me.store = Ext.StoreMgr.lookup(store);
            } else if (me.root) {
                store = me.store = Ext.data.StoreManager.lookup(store);
                store.setRoot(me.root);
                if (me.folderSort !== undefined) {
                    store.folderSort = me.folderSort;
                    store.sort();
                }
            }
      

  12.   

    试了一下,Json配置是可以的,以你现在给的代码我找不出问题了。
      

  13.   

    亲,能详细说明一下问题吗?你看一下这个结构:你这种看看还有没有问题。
    文档:http://docs.sencha.com/extjs/5.0/application_architecture/application_architecture.html
      

  14.   

    感觉你说的对,viewModel里的stores好像是一个装载该组件所需的store的所在地,本身并无法识别他是TreeStore还是其他store,所以很多原有的TreeStore中的方法都不能使用才会报错,就跟父类无法使用和找到子类的方法方法一样~~太感谢你了~~