管理模板中定义的嵌套视图的顺序
Managing order of nested view defined in template
>问题:
如何获取嵌套视图列表(如模板中定义的那样)并重新排序?或者将视图从一个父级视图移动到另一个父级视图?
例如,我想切换带有日期的列和带有图像的列,或者在用户操作中隐藏其中任何一个
{{#data-grid}}
{{#grid-column}}
{{format-date date}}
{{/grid-column}}
{{#grid-column}}
{{#link-to 'somewhere'}}<img scr="i.png" title="hello"/>{{/link-to}}
{{/grid-column}}
{{/data-grid}}
原因:
我正在通过运行时中的重新排序和隐藏列来实现数据网格。为所有情况声明视图类,然后在控制器中使用它们对我来说似乎很丑陋。
已经尝试使用容器视图,但找不到用模板内容填充childViews
的方法
更新当前状态数据网格的源代码:http://pastebin.com/E61e6WCt
如果你想自己实现这一点,你应该看看CollectionView。每个列都应是视图内容数组中的一个项目。对数组进行重新排序也应该正确重新排序 DOM 元素。
这是一个粗略的草图:基本上你覆盖了子类中的createChildView
。您可以将字符串传递到指示其类型的内容数组中。在createChildView
中,您可以通过 attrs 对象及其内容属性访问当前项。
App.ColumnsCollectionView = Ember.CollectionView.extend({
content : ["date", "image"],
createChildView: function(viewClass, attrs) {
var itemFromContent = attrs.content; // is either 'date' or 'image'
if (itemFromContent == 'date') {
viewClass = App.YourDateColumnView;
} else {
viewClass = App.YourImageColumnView;
}
return this._super(viewClass, attrs);
}
});
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- querySelector/getElementByClassName嵌套项的顺序
- 如何将嵌套承诺与Q连锁?我可以'Don’我不能让它们按正确的顺序运行
- 管理模板中定义的嵌套视图的顺序
- ractive js :与模板中键部分关联的嵌套对象列表的直接 DOM 插入排序/排序 #each 顺序
- 通过jQuery中的顺序嵌套类进行迭代
- 把手中嵌套的辅助对象(执行顺序)
- 通过要按顺序获取的键列表获取嵌套键
- 循环内嵌套的ajax调用没有按顺序执行
- 嵌套承诺实现顺序执行
- 混淆了嵌套测试套件和规范的执行顺序
- 查找ul's的嵌套顺序并添加特定的类
- 按顺序切换嵌套列表
- 根据顺序更改深度嵌套Javascript对象中同名属性的多个值
- Jquery .fadein .fadeout回调嵌套顺序不正确
- JavaScript:执行函数顺序 - 在函数完成处理之前嵌套函数返回值