关于MVC范式中视图和控制器之间的关系,特别是Sencha Touch



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

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

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

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

听起来您正在尝试检查列表存储的内容是否具有笔记本存储中已有的值。我要做的是在列表存储中创建一个"假"列,该列根据笔记本存储检查其值。

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"(虚拟生成的列)的值来决定显示哪个按钮。

我希望这有所帮助。

最新更新