如何在dom-repeat的路径名中包含动态属性?

时间:2019-07-03 16:58:22

标签: polymer polymer-1.0

我试图将复选框的状态绑定到hostProperty的特定嵌套子属性。复选框在嵌套的“ dom-repeat”模板内生成(每innerObj遍历outerObj),hostProperty的所需子属性相对于其他对象的子属性,即的格式为hostProperty[outerObj.name][innerObj.name]

我一直无法找出子属性的正确路径名。

我尝试了以下操作,但都失败了:
-hostProperty.outerObj.name.innerObj.name(可能会寻找未定义的hostProperty.outerObj.name
-['hostProperty', outerObj.name, innerObj.name](基于documentation for specifying paths
-hostProperty[outerObj.name][innerObj.name]
-hostProperty.outerObj['name'].innerObj['name']

<template is="dom-repeat" items="[[outerObj_arr]]" as="outerObj">
    <tr>
        <th scope="row">[[outerObj.name]]</th>                    
        <template is="dom-repeat" items="[[innerObj_arr]]" as="innerObj">
            <!-- broken path name below -->
            <td><paper-checkbox checked="[[hostProperty.outerObj.name.innerObj.name]]"></paper-checkbox></td>
        </template>
    </tr>
</template>

1 个答案:

答案 0 :(得分:1)

您无法尝试从html模板执行操作。 要使此工作正常进行,您需要使用辅助方法,例如:

<td><paper-checkbox checked="[[_getChecked(hostProperty, outerObj.name, innerObj.name)]]"></paper-checkbox></td>

然后在js中

_getChecked(list, key1, key2) {
  return list[key1][key2];
}