ExtJs 3.1 XmlTreeLoader Example Error

简介:

正文

   1.  代码位置:Ext3.1\examples\tree\xml-tree-loader.js
 

   2.  注意标红新增代码",requestMethod: 'GET'"!!

/* !
 * Ext JS Library 3.1.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.com
 * 
http://www.extjs.com/license
 
*/

//
//  Extend the XmlTreeLoader to set some custom TreeNode attributes specific to our application:
//
Ext.app.BookLoader  =  Ext.extend(Ext.ux.tree.XmlTreeLoader, {
    processAttributes : function(attr){
        
if (attr.first){  //  is it an author node?

            
//  Set the node text that will show in the tree since our raw data does not include a text attribute:
            attr.text  =  attr.first  +   '   '   +  attr.last;

            
//  Author icon, using the gender flag to choose a specific icon:
            attr.iconCls  =   ' author- '   +  attr.gender;

            
//  Override these values for our folder nodes because we are loading all data at once.  If we were
            
//  loading each node asynchronously (the default) we would not want to do this:
            attr.loaded  =   true ;
            attr.expanded 
=   true ;
        }
        
else   if (attr.title){  //  is it a book node?

            
//  Set the node text that will show in the tree since our raw data does not include a text attribute:
            attr.text  =  attr.title  +   '  ( '   +  attr.published  +   ' ) ' ;

            
//  Book icon:
            attr.iconCls  =   ' book ' ;

            
//  Tell the tree this is a leaf node.  This could also be passed as an attribute in the original XML,
            
//  but this example demonstrates that you can control this even when you cannot dictate the format of
            
//  the incoming source XML:
            attr.leaf  =   true ;
        }
    }
});

Ext.onReady(function(){

    var detailsText 
=   ' <i>Select a book to see more information...</i> ' ;

    var tpl 
=   new  Ext.Template(
        
' <h2 class="title">{title}</h2> ' ,
        
' <p><b>Published</b>: {published}</p> ' ,
        
' <p><b>Synopsis</b>: {innerText}</p> ' ,
        
' <p><a href="{url}" target="_blank">Purchase from Amazon</a></p> '
    );
    tpl.compile();

    
new  Ext.Panel({
        title: 
' Reading List ' ,
        renderTo: 
' tree ' ,
        layout: 
' border ' ,
        width: 
500 ,
        height: 
500 ,
        items: [{
            xtype: 
' treepanel ' ,
            id: 
' tree-panel ' ,
            region: 
' center ' ,
            margins: 
' 2 2 0 2 ' ,
            autoScroll: 
true ,
            rootVisible: 
false ,
            root: 
new  Ext.tree.AsyncTreeNode(),

            
//  Our custom TreeLoader:
            loader:  new  Ext.app.BookLoader({
                dataUrl:
' xml-tree-data.xml '
                
,requestMethod: 'GET'
            }),

            listeners: {
                
' render ' : function(tp){
                    tp.getSelectionModel().on(
' selectionchange ' , function(tree, node){
                        var el 
=  Ext.getCmp( ' details-panel ' ).body;
                        
if (node  &&  node.leaf){
                            tpl.overwrite(el, node.attributes);
                        }
else {
                            el.update(detailsText);
                        }
                    })
                }
            }
        },{
            region: 
' south ' ,
            title: 
' Book Details ' ,
            id: 
' details-panel ' ,
            autoScroll: 
true ,
            collapsible: 
true ,
            split: 
true ,
            margins: 
' 0 2 2 2 ' ,
            cmargins: 
' 2 2 2 2 ' ,
            height: 
220 ,
            html: detailsText
        }]
    });
});


 

   

结束语
 

  不要放弃和接受一次失败的搜索,不断的尝试改变搜索关键字,哪怕是用词霸翻成英文也得努力去试试,看不懂不要紧,看懂代码就行,代码无国界: )



本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/586531,如需转载请自行联系原作者

相关文章
|
前端开发 JavaScript
富文本编辑器wangEdiotr,编辑内容后,重新打开报错Uncaught (in promise) Error: Cannot find a descendant at path
富文本编辑器wangEdiotr,编辑内容后,重新打开报错Uncaught (in promise) Error: Cannot find a descendant at path
1859 0
|
4月前
|
资源调度 JavaScript iOS开发
基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
这篇文章介绍了一个基于Vue 2.x开发的移动端网页弹窗插件`wc-messagebox`,支持Alert、Confirm、Toast和Loading功能,并且提供了如何安装、配置和使用这些弹窗功能的详细说明。
基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
|
前端开发
【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
124 0
|
7月前
报错The above error occurred in the <InnerPicker> component:解决方法和Ant Design form表单setFieldValue修改input
报错The above error occurred in the <InnerPicker> component:解决方法和Ant Design form表单setFieldValue修改input
293 0
|
JavaScript 前端开发
踩坑-Uncaught Error: Bootstrap's JavaScript requires jQuery
踩坑-Uncaught Error: Bootstrap's JavaScript requires jQuery
169 0
|
JavaScript
vue路由跳转报错Uncaught SyntaxError:Unexpected token ‘<‘ (at chunk-elementUI.aeed1b74.js:1:1)Uncaught Synt
vue路由跳转报错Uncaught SyntaxError:Unexpected token ‘<‘ (at chunk-elementUI.aeed1b74.js:1:1)Uncaught Synt
820 0
|
JavaScript
ElementUI this.$message is not a function 解决方法
ElementUI this.$message is not a function 解决方法
227 0
html文件里面怎么使用elementui的Message以及MessageBox
html文件里面怎么使用elementui的Message以及MessageBox
503 0
html文件里面怎么使用elementui的Message以及MessageBox
|
JavaScript 数据格式 XML
|
JSON JavaScript 数据格式