Emberjs加载动态子视图

丹尼·希姆斯特拉(Danny Hiemstra)

我刚刚开始使用emberjs,但在了解如何在视图中动态更改视图时遇到一些问题。

我想要一个带有日历的页面。此页面的顶部有一些按钮可以在不同的日历视图(日,周,月)之间切换,还可以为此视图中的约会使用一些过滤器选项。

看到这个样机: 在此处输入图片说明

目前,我已经创建了一个日历路线以及一个CalendarIndexView和模板。该模板将包含基本的过滤器和视图切换按钮。在索引视图中,我可以调用另一个视图来显示网格。

<div class="calendar-container">
  {{view monthView}}
</div>

附加到这些不同视图的集合/上下文不应更改,因为过滤器也应用于此。

我遇到的问题是,在单击“天”按钮后,我不知道如何将monthView更改为例如dayView。我应该在路由器,控制器还是在主日历视图中处理此问题?如果不查看路由器,将如何使该视图动态切换?

贾瓦达达

Ember的核心优势之一是路由器-一切都由URL驱动。我认为您不应该退出。

  1. 对日历资源(在路由器中)中的不同视图使用不同的路由:

    this.resource('calendar', { path: '/calendar' }, function() {
      this.route('day');
      this.route('week');
      this.route('month');
    });
    
  2. 在日历资源上设置模型

  3. 在嵌套路线(dayweek (您可以使用,将月份设置为默认值calendar index route)中,使用与日历路线相同的模型,只是将其过滤为所需的内容。例如:

    export default Ember.Route.extend({
      model: function() {
        return this.modelFor('calendar').filter(function(event) { ... });
      }
    });
    
  4. 对于人员过滤器,在控制器中创建一个计算属性,该属性可过滤模型上的事件,并在模板中而不是实际模型中使用该属性。这样,如果选择了某个人,则可以过滤掉没有该人的任何事件。

    selectedPerson: null, // bind that e.g. to a select with all the people or change that with an action
    
    filteredEvents: function() {
      if (! this.get('selectedPerson')) {
        return this.get('events');
      }
      return this.get('events').filterBy('attendee', this.get('selectedPerson'));
    }.property('[email protected]', 'selectedPerson')
    
  5. 优于(4.):通过查询参数进行过滤这样,您可以非常灵活,甚至可以轻松构建强大的文本搜索...

希望能有所帮助并高兴地看到不同的方法...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在EmberJS中动态加载路由?

来自分类Dev

动态更改子视图

来自分类Dev

何时在Emberjs中使用子视图

来自分类Dev

何时在Emberjs中使用子视图

来自分类Dev

动态视图未正确加载

来自分类Dev

动态视图未正确加载

来自分类Dev

Caliburn Micro,动态加载的视图/视图模型

来自分类Dev

如何加载UIView子视图

来自分类Dev

从控制器的EmberJS加载视图未路由

来自分类Dev

Emberjs动态段:加载路由时出错:TypeError {}

来自分类Dev

从rootVC子视图访问UINavigationController(从Nib加载子视图)

来自分类Dev

动态将数据加载到新视图

来自分类Dev

从 api 加载路由并动态导入视图

来自分类Dev

动态UITableViewCell的子视图中的AutoLayout问题

来自分类Dev

删除动态创建的UIButton子视图

来自分类Dev

具有动态子视图的自动布局

来自分类Dev

iOS容器视图。动态加载视图控制器

来自分类Dev

iOS容器视图。动态加载视图控制器

来自分类Dev

EmberJS加载子状态:攀登路线层次结构以查找加载模板时使用什么逻辑?

来自分类Dev

EmberJS加载子状态:攀登路线层次结构以查找加载模板时使用什么逻辑?

来自分类Dev

重新加载UITableView会重置视图的子视图

来自分类Dev

视图加载后隐藏子视图图像(使用Swift)

来自分类Dev

超级视图加载完成后调整子视图的大小

来自分类Dev

在laravel中加载子视图时加载js

来自分类Dev

Emberjs中的视图

来自分类Dev

emberjs:动态网址

来自分类Dev

如何根据Emberjs中的语言更改动态加载样式表

来自分类Dev

具有动态加载的局部视图的非侵入式验证

来自分类Dev

MVC 4在单个页面上动态加载部分视图

Related 相关文章

热门标签

归档