如何在没有容器对象的情况下在每个循环中呈现视图?

Hekevintran

我有一个控制器,该控制器的属性是子控制器的数组。每个子控制器都有我要呈现的view属性。这段代码抛出错误:

{{#each subcontrollers}}
    {{view this.view}}
{{/each}}

如果我将子控制器包装成看起来像的对象Ember.Object.create({key: subcontroller}),那么这段代码可以正常工作:

{{#each subcontrollerContainers}}
    {{view this.key.view}}
{{/each}}

实现此目的的另一种方法是使用CollectionView

{{#collection subcontrollerCollection}}
    {{view view.content.view}}
{{/collection}}

这对我来说似乎违反直觉。{{view this.view}}之间的真正区别是{{view this.key.view}}什么?到底有CollectionView什么不同?

这是我的JSBin:http : //emberjs.jsbin.com/tuxob/7/edit

jQuery 1.10.2

车把1.2.1

曼1.1.2

HTML:

<script type="text/x-handlebars" data-template-name="subcontroller_template">
    foo
</script>
<script type="text/x-handlebars" data-template-name="controller_template">
    {{! This piece of code throws an error}}
    {{!--
    {{#each subcontrollers}}
        {{view this.view}}
    {{/each}}
    --}}

    <p>subcontrollerContainers:</p>
    {{#each subcontrollerContainers}}
        {{view this.key.view}}
    {{/each}}

    <p>subcontrollerCollection:</p>
    {{#collection subcontrollerCollection}}
        {{view view.content.view}}
    {{/collection}}
</script>

JavaScript:

App = Ember.Application.create();

var TemplatedViewController = Ember.Object.extend({
    templateFunction: null,
    viewArgs: null,
    viewBaseClass: Ember.View,
    view: function () {
        var controller = this;
        var viewArgs = this.get('viewArgs') || {};
        var args = {
            template: controller.get('templateFunction'),
            controller: controller
        };
        args = $.extend(viewArgs, args);
        return this.get('viewBaseClass').extend(args);
    }.property('templateFunction', 'viewArgs'),
    appendView: function (selector) {
        this.get('view').create().appendTo(selector);
    },
    appendViewToBody: function () {
        this.get('view').create().append();
    },
    appendPropertyViewToBody: function (property) {
        this.get(property).create().append();
    }
});

var Subcontroller = TemplatedViewController.extend({
    view: function () {
        var controller = this;
        return this.get('viewBaseClass').extend({
            controller: controller,
            templateName: 'subcontroller_template'
        });
    }.property()
});

var Controller = TemplatedViewController.extend({
    view: function () {
        var controller = this;
        return this.get('viewBaseClass').extend({
            controller: controller,
            templateName: 'controller_template'
        });
    }.property(),
    subcontrollers: null,
    init: function () {
        var subcontrollers = [];
        subcontrollers.pushObject(Subcontroller.create());
        subcontrollers.pushObject(Subcontroller.create());
        subcontrollers.pushObject(Subcontroller.create());
        this.set('subcontrollers', subcontrollers);
    },
    subcontrollerContainers: function () {
        var that = this;
        return this.get('subcontrollers').map(function (item, index, enumerable) {
            return that.createSubcontrollerContainer(item);
        });
    }.property('subcontrollers.@each'),
    createSubcontrollerContainer: function (subcontroller) {
        return Ember.Object.create({key: subcontroller});
    },
    subcontrollerCollection: function () {
        return Ember.CollectionView.extend({
            content: this.get('subcontrollers')
        });
    }.property('subcontrollers')
});

var controller = Controller.create();

$(function () {
    controller.appendView('#main');
});
海梅

看一下这个。似乎具有名为“ view”的属性与余烬命名约定冲突。检出此工作链接。我只是将计算出的属性“ view”更改为“ conView” http://emberjs.jsbin.com/zowat/1/edit

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有额外键的情况下在循环中创建数组对象?

来自分类Dev

如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

来自分类Dev

如何在没有JSX的情况下在React.js中呈现html实体

来自分类Dev

如何在没有根元素的情况下在GXT HTML布局容器中添加HTML?

来自分类Dev

如何在没有错误的情况下在多个活动中加载导航视图?

来自分类Dev

如何在没有任何其他内容的情况下在phalcon中加载视图

来自分类Dev

如何在没有for循环的情况下在twilio api中发送批量短信

来自分类Dev

如何在没有循环依赖的情况下在GraphQL中拆分模式?

来自分类Dev

如何在没有for循环的情况下在Matlab中获得某个输出?

来自分类Dev

如何在没有for循环的情况下在python列表/数组上迭代执行操作?

来自分类Dev

Angular:如何在没有事件的情况下在* ngFor DOM元素后面获取对象?

来自分类Dev

如何在没有容器(视图)ID的情况下替换当前片段?

来自分类Dev

如何在不退出程序的情况下在do-while循环中添加if语句?

来自分类Dev

如何在没有构造函数参数的情况下将对象放置到STL容器?

来自分类Dev

如何在没有for循环的情况下注释/聚合列表中的每个项目(Django)

来自分类Dev

如何在没有for循环的情况下在2D numpy数组中设置多个列?

来自分类Dev

如何在没有for循环的情况下在元组Vec中打开两个嵌套的HashMap?

来自分类Dev

如何在没有for循环的情况下在2D numpy数组中设置多个列?

来自分类Dev

如何在没有循环的情况下获取 Javascript 对象的所有键

来自分类Dev

如何在不传递参数的情况下在存储库类中获取容器对象?

来自分类Dev

如何在没有重复存储对象的情况下在多个状态模型之间进行交互-NGXS

来自分类Dev

Laravel 4-如何在没有父级的情况下呈现@extends('parent')的子级视图

来自分类Dev

如何在没有Extbase的情况下呈现Fuid视图模板?即通过eID的电子邮件模板

来自分类Dev

在JavaScript中,如何在没有for循环的情况下计算对象数组中的值差?

来自分类Dev

Rust编译器抱怨在没有代码的情况下在循环中使用移动值

来自分类Dev

ASP:NET MVC:如何在没有CSS类重叠的情况下在一页中呈现两种样式?

来自分类Dev

如何在不知道C ++中有多少个可选参数的情况下在循环中使用va_arg?

来自分类Dev

如何在不使用数组的情况下在 for 循环中声明和初始化多个变量(具有不同名称)?

来自分类Dev

如何在没有现有引擎的情况下在游戏中设计EventTrigger框架?

Related 相关文章

  1. 1

    如何在没有额外键的情况下在循环中创建数组对象?

  2. 2

    如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

  3. 3

    如何在没有JSX的情况下在React.js中呈现html实体

  4. 4

    如何在没有根元素的情况下在GXT HTML布局容器中添加HTML?

  5. 5

    如何在没有错误的情况下在多个活动中加载导航视图?

  6. 6

    如何在没有任何其他内容的情况下在phalcon中加载视图

  7. 7

    如何在没有for循环的情况下在twilio api中发送批量短信

  8. 8

    如何在没有循环依赖的情况下在GraphQL中拆分模式?

  9. 9

    如何在没有for循环的情况下在Matlab中获得某个输出?

  10. 10

    如何在没有for循环的情况下在python列表/数组上迭代执行操作?

  11. 11

    Angular:如何在没有事件的情况下在* ngFor DOM元素后面获取对象?

  12. 12

    如何在没有容器(视图)ID的情况下替换当前片段?

  13. 13

    如何在不退出程序的情况下在do-while循环中添加if语句?

  14. 14

    如何在没有构造函数参数的情况下将对象放置到STL容器?

  15. 15

    如何在没有for循环的情况下注释/聚合列表中的每个项目(Django)

  16. 16

    如何在没有for循环的情况下在2D numpy数组中设置多个列?

  17. 17

    如何在没有for循环的情况下在元组Vec中打开两个嵌套的HashMap?

  18. 18

    如何在没有for循环的情况下在2D numpy数组中设置多个列?

  19. 19

    如何在没有循环的情况下获取 Javascript 对象的所有键

  20. 20

    如何在不传递参数的情况下在存储库类中获取容器对象?

  21. 21

    如何在没有重复存储对象的情况下在多个状态模型之间进行交互-NGXS

  22. 22

    Laravel 4-如何在没有父级的情况下呈现@extends('parent')的子级视图

  23. 23

    如何在没有Extbase的情况下呈现Fuid视图模板?即通过eID的电子邮件模板

  24. 24

    在JavaScript中,如何在没有for循环的情况下计算对象数组中的值差?

  25. 25

    Rust编译器抱怨在没有代码的情况下在循环中使用移动值

  26. 26

    ASP:NET MVC:如何在没有CSS类重叠的情况下在一页中呈现两种样式?

  27. 27

    如何在不知道C ++中有多少个可选参数的情况下在循环中使用va_arg?

  28. 28

    如何在不使用数组的情况下在 for 循环中声明和初始化多个变量(具有不同名称)?

  29. 29

    如何在没有现有引擎的情况下在游戏中设计EventTrigger框架?

热门标签

归档