2

我正在使用 Sencha Touch 制作一个网络移动应用程序。我对 EXTJS 的工作方式不是很熟悉。我这样设置我的列表:

sink.Structure = [{
        text: 'Name'
    },
    {
        text: '&nbsp;&nbsp;&nbsp;<?php echo $name; ?>'
    },
    {
        text: 'Friend'
    },
    {
        text: '&nbsp;&nbsp;&nbsp;<?php echo $friend; ?>'
    },
    {
        text: 'Shop'
    },
    {
        text: '&nbsp;&nbsp;&nbsp;<?php echo $shop; ?>'
    }];

            Ext.regModel('Demo', {
            fields: [
                {name: 'text',        type: 'string'},
                {name: 'source',      type: 'string'},
                {name: 'preventHide', type: 'boolean'},
                {name: 'animation'},
                {name: 'card'}
            ]
        });

        sink.StructureStore = new Ext.data.TreeStore({
            model: 'Demo',
            root: {
                items: sink.Structure
            },
            proxy: {
                type: 'ajax',
                reader: {
                    type: 'tree',
                    root: 'items'
                }
            }
        });

所以这完美地呈现了列表,正是我想要的,但是我如何更改与 $name; 相呼应的行的值;

在初始加载时,我在 PHP 变量中有值,但如果用户更改它,我希望它更改它的值。我需要重写整个结构吗?

在 Jquery 中,我可以只给元素一个 ID,然后更改它的 .html 内容。但是我注意到,我的列表项的结构方式没有任何可以用来引用它的识别选择器。任何建议都会有所帮助,谢谢!

更新:所以我在这方面取得了一些进展,而不是在列表结构中回显 PHP 变量,我打印了一个名为 name 的 Javascript 变量,该变量最初设置为 PHP 变量。我还将 sink.Structure 设置放在一个函数中,该函数接受这些值,然后应该重置它们,但事实并非如此。我尝试让函数包含 sink.StructureStore,因为这似乎是渲染列表的原因(也许?这是一个猜测)以及 sink.Structure 数组列表,但似乎没有任何影响已经设置的列表, 请帮忙!

4

3 回答 3

2

列表是数据绑定的。更新底层数据存储中的数据,任何绑定到数据存储的列表都会自动更新其用户界面。

于 2010-11-04T21:49:34.110 回答
-2
  1. 您必须使用新值更新 Data.Store。
  2. YourList.bindStore(YourStore);
  3. 第二行代码自动填充列表。
于 2011-01-04T20:11:11.203 回答
-6

我不得不说我对 Sencha Touch 在这方面的工作方式感到失望,它似乎在第一次加载时呈现列表并且无法重新呈现,因为它动态创建了所有 div 的类“x-list-item” 。” 我尝试了许多方法来尝试摆脱列表并重新创建一个新列表,但无济于事。

我设法让它工作的唯一方法是在带有 id 的列表元素中放入一个 div 标记,然后使用 JQuery 选择元素并更改它的 html。这是我用 Sencha Touch 制作的第一个应用程序,我希望它是最后一个。

我们这样做的唯一原因是因为它与 Android 兼容,但是在 Android Emulator (2.2) 上加载应用程序时,任何翻页动画都不起作用!此外,在 Nexus One 上进行了测试,它的加载速度确实更快,但没有幻灯片转换。尽管 Sencha 有更多功能,但 JQTouch 无疑是我在 web-mobile-apps 方面的首选。抱歉,我不得不把它从我的胸口拿走:)

于 2010-11-04T15:07:00.830 回答