gpt4 book ai didi

javascript - 管理模板中定义的嵌套 View 的顺序

转载 作者:行者123 更新时间:2023-11-28 08:45:40 24 4
gpt4 key购买 nike

问题:

如何获取嵌套 View 列表(因为它们在模板中定义)并对它们重新排序?或者将 View 从一个父 View 移动到另一个父 View ?

例如,我想切换包含日期的地点列和包含图像的列,或者在用户操作时隐藏其中任何一个

{{#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}}

原因:

我正在实现数据网格,并在运行时重新排序和隐藏列。为所有情况声明 View 类,然后在 Controller 中使用它们对我来说似乎很难看。

已经尝试使用ContainerView,但找不到用模板内容填充childViews的方法

更新当前状态数据网格源代码:http://pastebin.com/E61e6WCt

最佳答案

如果您想自己实现此功能,您应该查看 CollectionView 。您的每一列都应该是 View 内容数组中的一项。重新排序数组也应该正确地重新排序 DOM 元素。

这是一个粗略的草图:基本上,您正在子类中重写createChildView。您可以将字符串传递到内容数组中以指示其类型。在 createChildView 中,您可以通过 attrs 对象及其 content 属性访问当前项目。

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);
}
});

关于javascript - 管理模板中定义的嵌套 View 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19836397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com