是否有可能 nest/inner dom-if 其中第二个 dom-if 取决于从第一个 dom-if 块观察到的值

is it possible nest/inner dom-if where the second dom-if depends on value oberseved from the first dom-if block

我仔细阅读了这些帖子

这可能与我的问题有一些关系,但我没有找到任何线索,如果我能做我想做的事以及如何做。

在我的公司,有几个流程,每个流程对应一个业务流程,流程的每个步骤都是一个编码为 Polymer 1 Web 组件的屏幕。所有这些都包裹在定义路由的根 Polymer 组件中。

一个简单的例子是:

my-root-component:

<dom-module id="my-root-component">
    <template>
        <first-obrigatiory-page which-route={aValueReturnedFromFirstComponent}></first-obrigatiory-page>
        <template is="dom-if" if="[[_isTrueFunction(aValueReturnedFromFirstComponent)]]" restamp>
            <second-page which-sub-route={aValueReturnedFromSecondComponent}></second-page>
            <template is="dom-if" if="[[_isTrueFunction(aValueReturnedFromSecondComponentComponent)]]" restamp>
                <third-page ></third-page>
            </template>
        </template>
    </template>

        <script>
        Polymer({
            is: 'my-root-component',
            behaviors: [doesntMatterHere],
            properties: {

第一个 dom- 如果按预期工作,但第二个似乎没有被考虑在内,我的第三页组件从未显示。

我检查过,_isTrueFunction(aValueReturnedFromSecondComponentComponent) 的等效项正在返回 true。

aValueReturnedFromFirstComponent 真的 return 有什么用吗,因为您应该将属性声明为 which-route="{{aValueReturnedFromFirstComponent}}" 而不是使用简单的 { }.

first-obrigatiory-page 元素中的 whichRoute (注意驼峰式) 属性 是否有 notify: true 属性 所以变量实际上发送回更新值?


我通常在 dom-ifs 不更新的时候设置变量观察器,这样我就可以看到它们是否真的改变了,然后通过控制台自己设置变量 document.querySelector('my-root-component').set('aValueReturnedFromFirstComponent', true) 所以我可以看到 dom-if 真的更新了。

解决方法可能是使用事件,但您所做的应该有效。