【问题标题】:Ember JS: render same view twice ( with data from one controller )Ember JS:两次渲染相同的视图(使用来自一个控制器的数据)
【发布时间】:2015-06-10 15:06:05
【问题描述】:

我有一个 Ember JS 拖放视图,用于将项目连接到更大的部分。 随着构造的增长,它会垂直重叠视口。

我现在想做的是有一个 d&d 视图的小预览视图。

我希望我与之交互的第一个(大,垂直重叠)视图中的控制器数据出现在第二个视图(预览,小,不垂直重叠)中。

任何想法如何使用来自一个视图的数据渲染一个视图两次,或者将一个视图连接到另一个视图的控制器?

提前致谢!

【问题讨论】:

    标签: ember.js ember.js-view ember-controllers


    【解决方案1】:

    首先,您不应该再使用视图。使用组件。

    然后,将所有逻辑和状态转移到模型中。拥有一个代表您的拖放小工具的模型,并将其输入到两个组件中:一个组件用于预览界面,另一个用于完整界面。

    【讨论】:

    • 你为什么要“以编程方式添加子视图”?此外,我将逻辑和状态转移到模型中的建议也适用于视图。
    • 感谢您的回答。我知道组件会更好的事实。无论如何,代码是用视图编写的,因为这是我知道以编程方式处理添加子视图的唯一方法。我使用 ember-data 和 rails api,我可以同时使用 ds.model 和本地模型吗?我不打算在每次移动部件时都发出请求?!
    • 我的意思是概念意义上的“模型”,它不一定是DS.Model,它可以只是一个对象。不过DS.Model也可以,就是不要打电话.save()就可以了。
    • 每次删除一个元素时,它都会从 api 中捕获所有项目数据,并创建一个表示该项目的子视图(有不同的项目类别和不同的模板)。每个项目都存储在控制器中的一个数组中,控制器还检查是否可以将零件放在该位置
    • 所以解决方案是将项目数组移动到模型而不是控制器,然后创建另一个显示模型数据的视图?
    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多