重复模板内两个聚合物成分的绑定参数
Bind parameters of two polymer components inside repeat template
我想在下面的例子中绑定 attr
和 attr1
。这两个参数不依赖于 data
(其他属性依赖)。当以这种方式使用绑定时,所有 'rows' 之间只有一个共享数据对象。我只想将一次迭代的两个组件绑定在一起。
<template repeat"{{data in dataList}}">
<component1 attr="{{binding}}" />
<component2 attr2="{{binding}}" />
</template>
我的第一个想法是将属性绑定到 data
对象的变量:
<template repeat"{{data in dataList}}">
<component1 attr="{{data.binding}}" />
<component2 attr2="{{data.binding}}" />
</template>
另一方面,这个解决方案真的很丑陋,因为模型对象获取的是仅供查看的数据。因为模型的寿命通常比组件长,所以这可能会导致巨大的开销。另一个问题是序列化,它可能会因为附加数据而失败。
有什么优雅的解决方案吗?到目前为止我唯一想到的是在迭代数据集之前包装数据对象。另一方面,这种方法可能会导致模型更新出现问题...
天真的想法:一个只在模板内部使用的变量的范围不应该限制在这个模板内吗?在重复模板的特殊情况下再进行一次迭代?
您可能会键入建议您的 binding
变量为 Object
并像这样使用它:
<polymer-element name="my-element" attributes="dataList">
<template>
<ul>
<template repeat="{{d in dataList}}">
<li>
{{d}} ⇒ {{binding[d]}} <!-- Since type-suggested, it works -->
</li>
</template>
</ul>
</template>
<script>
Polymer({
dataList: ['navy', 'maroon'],
binding: {} /* it’s necessary to type-suggest var for Polymer */
});
</script>
</polymer-element>
请注意,上面的代码片段需要 dataList
中的不同项目。实时预览:http://plnkr.co/edit/ez36BVUPCKW8xRSkGxOM?p=preview
Naive thought: Shouldn't be the scope of a variable that is only used inside of a template restricted to this template? In the special case of the repeat template furthermore to one iteration?
这对我来说听起来不可能,因为(除此之外这会使实现过于复杂)有时人们想在 nested 模板中绑定变量:
<template repeat="{{a in lst}}">
{{bound_here}}
<template id="nested">
{{bound_here}}
...
根据您的建议,上述绑定变得不可能。
我想在下面的例子中绑定 attr
和 attr1
。这两个参数不依赖于 data
(其他属性依赖)。当以这种方式使用绑定时,所有 'rows' 之间只有一个共享数据对象。我只想将一次迭代的两个组件绑定在一起。
<template repeat"{{data in dataList}}">
<component1 attr="{{binding}}" />
<component2 attr2="{{binding}}" />
</template>
我的第一个想法是将属性绑定到 data
对象的变量:
<template repeat"{{data in dataList}}">
<component1 attr="{{data.binding}}" />
<component2 attr2="{{data.binding}}" />
</template>
另一方面,这个解决方案真的很丑陋,因为模型对象获取的是仅供查看的数据。因为模型的寿命通常比组件长,所以这可能会导致巨大的开销。另一个问题是序列化,它可能会因为附加数据而失败。
有什么优雅的解决方案吗?到目前为止我唯一想到的是在迭代数据集之前包装数据对象。另一方面,这种方法可能会导致模型更新出现问题...
天真的想法:一个只在模板内部使用的变量的范围不应该限制在这个模板内吗?在重复模板的特殊情况下再进行一次迭代?
您可能会键入建议您的 binding
变量为 Object
并像这样使用它:
<polymer-element name="my-element" attributes="dataList">
<template>
<ul>
<template repeat="{{d in dataList}}">
<li>
{{d}} ⇒ {{binding[d]}} <!-- Since type-suggested, it works -->
</li>
</template>
</ul>
</template>
<script>
Polymer({
dataList: ['navy', 'maroon'],
binding: {} /* it’s necessary to type-suggest var for Polymer */
});
</script>
</polymer-element>
请注意,上面的代码片段需要 dataList
中的不同项目。实时预览:http://plnkr.co/edit/ez36BVUPCKW8xRSkGxOM?p=preview
Naive thought: Shouldn't be the scope of a variable that is only used inside of a template restricted to this template? In the special case of the repeat template furthermore to one iteration?
这对我来说听起来不可能,因为(除此之外这会使实现过于复杂)有时人们想在 nested 模板中绑定变量:
<template repeat="{{a in lst}}">
{{bound_here}}
<template id="nested">
{{bound_here}}
...
根据您的建议,上述绑定变得不可能。