0

我正在尝试使用 Sencha Touch 2 编写一个应用程序来帮助我记住所有这些词汇。

我正在研究列表显示一些单词的部分。我希望列表视图能够咨询笔记本控制器,以便它可以知道每个单词是否已经在笔记本中,这样它就可以相应地为每个单词显示“添加到笔记本”或“从笔记本中删除”按钮。

我只是想知道让视图向控制器发起请求是否是一种好习惯。在 Objective-C 中工作时,似乎可以通过将控制器设置为视图的委托来完成此操作。那么 Sencha Touch 中是否有等效的方法?

4

1 回答 1

0

Sencha MVC 只是一个指南,其结构并未严格执行。例如,您可以通过将所有事件侦听器放在视图中来创建没有控制器的应用程序。或者,您可以只维护 1 个控制器文件来处理您的所有视图。由你决定。

听起来您正在尝试检查 ListStore 的内容是否具有已在 Notebook 存储中的值。我要做的是在 ListStore 中创建一个“假”列,根据 Notebook 存储检查其值。

Ext.create('Ext.data.ListStore', {
   ...
   fields: [
      ... (other fields) ...
      {
         name: 'isInNotebook',
         convert: function(value, record) {
            return this.verifyInNotebook(record.get('fieldToVerify'));
         }
      }
   ],
   verifyInNotebook: function(verifyValue) {
       var notestore = Ext.getStore('NotebookStore');
       return notestore.FindExact(verifyValue);
   }
}

然后在您的视图中,您将根据列“isInNotebook”的值来决定显示哪个按钮,该列是一个虚拟生成的列。

我希望这有帮助。

于 2012-11-28T02:04:21.060 回答