1

我想获取 在 sencha touch 2 的快照中突出显示的media:content 属性->“url”值。在此处输入图像描述

我的煎茶模型代码是

Ext.define('MyApp.model.Feed', {
extend: 'Ext.data.Model',

config: {
    fields: [
        {
            name: 'title'
        },
        {
            name: 'link'
        },
        {
            name: 'pubDate'
        },
        {
            name: 'channel'
        },
        {
            name: 'item'
        },
        {
            name: 'content'
        },
        {
            name: 'description'
        },
        {
            name: 'category'
        }
    ],
    hasMany: {
        associationKey: 'content',
        model: 'MyApp.model.Feed',
        autoLoad: true
    }
}

});

煎茶店 XMLStore

Ext.define('MyApp.store.MyXmlStore', {
extend: 'Ext.data.Store',

requires: [
    'MyApp.model.Feed'
],

config: {
    autoLoad: true,
    model: 'MyApp.model.Feed',
    storeId: 'MyXmlStore',
    proxy: {
        type: 'ajax',
        url: 'http://www.goodnews.pk/feed/',
        reader: {
            type: 'xml',
            rootProperty: 'channel',
            record: 'item'
        }
    }
}

});

MyList 查看代码

Ext.define('MyApp.view.ListView', {
extend: 'Ext.Panel',

config: {
    id: 'ListView',
    layout: {
        type: 'card'
    },
    items: [
        {
            xtype: 'list',
            itemTpl: [
                '<div style="width:auto; float:left;"><img src="{pubDate}" width="50" height="50" /></div>',
                '<div style="width:70%; padding: 5px;">',
                '    <span><h4>{description}</h4></span>',
                '    <span>{category}</span>',
                '    <span>{content}</span>',
                '</div>'
            ],
            store: 'MyXmlStore'
        }
    ]
}

});

xml 链接是www.goodnews.pk/feed/

4

1 回答 1

1

我解决了来自媒体的 url 链接:sencha 架构师中的 xml 内容解析。我只更改了模型中的几个设置,并添加了一个通过此函数转换字段的函数。

上面的代码是一样的。只有我的煎茶模型代码是变化的。代码如下。

我的煎茶模型代码

Ext.define('MyApp.model.Feed', {
extend: 'Ext.data.Model',

config: {
    fields: [
        {
            name: 'title'
        },
        {
            name: 'link'
        },
        {
            name: 'pubDate'
        },
        {
            name: 'channel'
        },
        {
            name: 'item'
        },
        {
            name: 'content'
        },
        {
            convert: function(v, rec) {
                var nodes = rec.raw.querySelectorAll('description');
                var arrayItem = [];
                var l = nodes.length;

                var desc = "";

                for( var i = 0; i < l; i++){
                    var node = nodes[i];

                    // now push the description in array with substring
                    desc = nodes[i].textContent;
                    console.log(desc.substring(0,100));

                    //arrayItem.push(nodes[i].textContent);
                    //console.log(nodes[i].textContent);

                    desc = nodes[i].textContent;
                    arrayItem.push(desc.substring(0,100)+'[...]');
                }

                return arrayItem;
            },
            name: 'description'
        },
        {
            name: 'category'
        },
        {
            convert: function(v, rec) {
                console.log(''+rec.raw);
                var nodes = rec.raw.querySelectorAll('content');
                console.log('length is '+nodes.length);
                var arrayItem = [];
                var l = nodes.length;
                var flag = true;


                for( var i = 0; i < l; i++){
                    var node = nodes[i];

                    //this will get the image Link
                    var imageLink = nodes[i].getAttribute('url');




                    //console.log(nodes[i].textContent);

                    if(i%2!==0)
                    {

                        // now push the image Link in array that contains all the images link
                        arrayItem.push(imageLink);
                        console.log(nodes[i].getAttribute('url'));
                    }

                }

                return arrayItem;
            },
            name: 'imageLink'
        }
    ],
    hasMany: {
        associationKey: 'content',
        model: 'MyApp.model.Feed',
        autoLoad: true
    }
}

});

我还分享了我的 sencha architech 快照。+ 控制台日志 煎茶建筑师 在此处输入图像描述

于 2012-12-15T17:41:56.343 回答