0

我正在使用 RiotJS v3.9

我编写了一个接受一些选项的自定义标签。问题是它生成的标记除了我显式存放它们的内部标签外,还包括最外层元素上的所有这些选项。除非我做到这一点,否则我不希望任何选项出现在顶部元素上。

在这种情况下,我的自定义标签显示项目列表。它接受的选项之一是每个列表项上特定data-属性的值。所以,我想出data-something={opts.itemSomething}现在每个列表项上,但我不希望它出现在包装上。

// my-list.tag
<my-list>
    <ul data-something={ opts.something }>
        <li
            each={ item in opts.items }
            data-something={ parent.opts.itemSomething }
        >
            { item }
        </li>
    </ul>
</my-list>

使用它:

<my-app>
    
    <my-list
        something="parent-value"
        item-something="child-value"
        items={['one', 'two', 'three']}
    />
    
</my-app>

它发出到页面中的内容:

<my-list something="parent-value" item-something="child-value">
    <ul data-something="parent-value">
        <li data-something="child-value"> one </li>
        <li data-something="child-value"> two </li>
        <li data-something="child-value"> three </li>
    </ul>
</my-list>

我不希望发出的<my-list>标签上有值或子值。我只希望这些属性出现在<ul>and上<li>,就像我编写的那样。

// bad output
<my-list something="parent-value" item-something="child-value">

// good output
<my-list>

这可能吗?

另外,我从与 React 的合作中知道,我可能会遇到未来的情况,我希望某些选项出现在包装器上,同时隐藏其他选项。所以,理想情况下,我想知道如何在每次选择的基础上控制这种行为。

4

1 回答 1

1

您可以在“更新”和“挂载”事件中删除不需要的属性。

检查这个演示

但是我强烈建议你切换到 riot@5!!

于 2020-11-27T18:07:55.767 回答