LitElement-如何在LitElement渲染方法内的表达式中使用javascript创建dom-if restamp行为?

时间:2019-03-19 20:47:41

标签: lit-element dom-if

我们在LitElement中使用“ if”表达式来有选择地渲染render方法中的内容,并且每次“ if”表达式得到重新评估(更改)时都希望重新创建子DOM。这类似于dom-if元素用来支持聚合物3中的“ restamp”特性。

真的很喜欢这里的任何指示吗?

谢谢, 维沙尔

2 个答案:

答案 0 :(得分:0)

您有2个选项,具体取决于条件是否会多次更改,并且是否要缓存表示的零件:

没有缓存(普通javascript)

@IBOutlet var textFields: [CustomTextField]!

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    for textField in textFields {
        textField.customPasteDelegate = self
    }
}

具有缓存(使用lit-html中的缓存指令)

func handlePaste() {
    if let pasteString = UIPasteboard.general.string {
        let splitArray = pasteString.split(separator: "\n")

        for (index, val) in splitArray.enumerated() {
            textFieldsArray[index].text = String(val)
        }
    }
}

答案 1 :(得分:0)

尝试一下:

    render() {
      return html`${
        condition ? html`<p>Hello</p>` : ''
      }`;
    }