EXTJS5使用ViewModel为Tree组件配置store 你断点看看错误提示的item变量是什么。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 追踪不到啊~~定位的时候,走完getRoot()方法之后,就跳到他自己的类库中去了~~一直都没看到item~~~ 追踪不到啊~~定位的时候,走完getRoot()方法之后,就跳到他自己的类库中去了~~一直都没看到item~~~你在Sources选项卡中点最右边那个"Pause on exceptions"按钮,点成蓝色,然后运行到ext的代码异常的地方会自动断点,不用手动跟,看看item是什么对象才能找到问题。 item是root~~说root里的很多方法找不到 item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里? item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了 item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。 item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。 item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢? item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。这是详细截图,求问,有没有更好的方式~~~ item是root~~说root里的很多方法找不到截个图看看。你为什么要把store放到ViewModel里?感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢?所有store都在store文件夹内定义,在tree里初始化 查了一下文档,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(); } } 试了一下,Json配置是可以的,以你现在给的代码我找不出问题了。 亲,能详细说明一下问题吗?你看一下这个结构:你这种看看还有没有问题。文档:http://docs.sencha.com/extjs/5.0/application_architecture/application_architecture.html 感觉你说的对,viewModel里的stores好像是一个装载该组件所需的store的所在地,本身并无法识别他是TreeStore还是其他store,所以很多原有的TreeStore中的方法都不能使用才会报错,就跟父类无法使用和找到子类的方法方法一样~~太感谢你了~~ 如何用jquery将多个td标签合并成一个带colspan的 JS能提交text文本框的内容 fckeditor如何将文字编辑区域的高度变长一些?如何用JS按钮控制 为什么最后一个是递归? window.open和showModalDialog的问题? 全屏窗口请教 求教 js旋转特效实现原理 iframe 获得ID值,怎么不行? 我想打出"\"请问能不能了? 我的语句为 alert ("\");为什么不能实现,我想实现这个功能,请指教。 如何查找一个VAR中是否有空白键(VAR为一传入的字符串) 将字符串转为方法调用并传递参数 treegrid怎么让子节点默认不展开
截个图看看。
你为什么要把store放到ViewModel里?
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢?
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了Store应该在app/store文件夹内用Ext.define定义,ViewModel作用只是分离出在View上面要经常修改的配置,如果title什么的吧。如果按你这么说ViewModel就没用了,你在里面定义那么复杂的东西,跟单独js文件定义就没区别了,用起来还麻烦。
这是详细截图,求问,有没有更好的方式~~~
截个图看看。
你为什么要把store放到ViewModel里?
感觉这样以后要修改什么数据直接在viewModel里修改就可以了~~并且这个不是5才有的么,所以就想试试~~我看网上有例子,都是直接在initComponent里遍历,多个循环嵌套,感觉这样如果我改变了json串的结构,比如有的菜单3层,有的4层,还得修改initComponent,所以就直接放到viewModel里了我不明白有什么要在initComponent里遍历还循环嵌套的。
那比如我想写一个tree,应该怎么写呢?在哪里初始化store呢?所有store都在store文件夹内定义,在tree里初始化
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();
}
}
文档:http://docs.sencha.com/extjs/5.0/application_architecture/application_architecture.html