Как включить динамические свойства в пути внутри dom-repeat? - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь привязать состояние флажка к определенному вложенному подвойству hostProperty. Флажки создаются внутри вложенного шаблона «dom-repeat» (с итерацией по innerObj на outerObj), а желаемое подвойство hostProperty относится к подвойствам других объектов, т. Е. Имеет вид hostProperty[outerObj.name][innerObj.name].

Мне не удалось определить правильный путь к имени подпрепарата.

Я попробовал следующее, но все не удалось:
- hostProperty.outerObj.name.innerObj.name (вероятно, ищет hostProperty.outerObj.name, который не определен)
- ['hostProperty', outerObj.name, innerObj.name] (на основе документации для указания путей )
- 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 Ответ

1 голос
/ 04 июля 2019

То, что вы пытаетесь сделать, невозможно из HTML-шаблона.Чтобы это работало, вам нужно использовать вспомогательный метод, например:

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

А затем в js:

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