我有一个聚合物0.5.5核心列表,显示来自AJAX调用的一些项目。在核心列表中,如果我有一个模板,它可以正常工作并按预期显示我的项目。我想做的是重用相同的核心列表来显示不同项目的列表,这些项目应绑定到不同的模板。我无法为我的生活做到这一点。
我尝试过使用if属性的两个模板使用反向条件(if="{{model.attribute}}"
和if="{{!model.attribute}}"
),但这两个条件似乎总是评估为false。
我尝试过带有ref属性的模板,该属性是通过条件(ref="{{model.attribute?'template1':'template2'}}"
)或通过我的元素(ref="{{mode}}"
)中的变量计算的,我在再次调用AJAX请求之前进行了更改。 / p>
这一切都无效。在最好的情况下,仅使用第一个模板。在其他情况下,什么也没出现。在其他代码组合上,情况更糟:我“似乎”得到正确的初始模板,但有些东西不起作用,好像只传递了部分模型对象。我有一个数据过滤器,在一些奇怪的情况下,显示的数据应该是。
我有一种下沉的感觉,这种类型的动态模板与核心列表不相符。有人取得了这样的效果吗?基本上我只想要一个可以显示两种类型的项目和交换机模板的列表。由于切换是以编程方式完成的,如果需要,我可以在代码中执行操作,但我不确定我可以通过这种方式更改模板。
谢谢!
答案 0 :(得分:1)
这对我有用:
<div vertical layout fit style="overflow:auto;">
<h1>asd</h1>
<core-list data="{{ list_data }}" id="core_list_ps">
<template>
<div class="item">
<!-- NOTE!
All list data, as custom elements, must go inside the 'item' here. -->
<template if="{{model.list1}}">
<my-list1
id="list1_id"
route="{{route}}"
list1_data='{{model}}'
></my-list1>
</template>
<template if="{{model.list2}}">
<my-list2
id="list2_id"
route="{{route}}"
list2_data='{{model}}'
></my-list2>
</template>
</div>
</template>
</core-list>
因此,根据将数据传递给核心列表模型,使用不同的自定义元素来渲染元素。
flatiron-director也用于根据路线过滤数据(list1 / list2)。