gpt4 book ai didi

polymer - Polymer 1.x 的 dom-if 问题

转载 作者:行者123 更新时间:2023-12-01 11:32:55 26 4
gpt4 key购买 nike

我在模板转发器中有几个条件标记元素。现在,当我更新数据时,if 条件似乎没有生效,这导致 undefined 被传递到处理这些元素数据的函数中。

使用 restamp 属性似乎没有帮助 ( https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-if )。到目前为止,我只能通过清空发起新请求的更改处理程序中的 items 属性 (this.items = [];) 来解决此问题。

这可行,但会导致模板在显示新数据之前的短时间内为空。不一定是问题,但我想知道我是否做错了什么。

下面是相应的部分代码:

<template>
...
<iron-ajax
id="ironajax"
url="https://www.url.com/api"
params="{{ajaxParams}}"
handle-as="json"
on-response="handleResponse"
on-error="handleError">
</iron-ajax>
...
<template is="dom-repeat" items="{{items}}" id="items">
...
<template is="dom-if" if="{{item.info.subtitle}}">:
<span>{{truncateSubtitle(item.info.subtitle)}}</span
</template>
...
Polymer({
is: 'my-element',
properties: {
query: {
type: String,
value: ''
}
...
items: {
type: Array,
value: []
}
}
...
handleChange: function() {
if (this.value !== '') {
this.items = [];
this.query = this.value;
this.$.ironajax.generateRequest();
}
}
...

最佳答案

给定 "{{item.info.subtitle}}",如果 item.infonullundefined 或者如果 item.info.subtitleundefined,绑定(bind)将不会刷新并且可能有一个陈旧的值(在重复使用节点的上下文中).

Polymer 不会对 undefined 值执行计算,因为它在很多情况下都是性能增强,但在这种情况下可能会很棘手。

您应该使用一个函数来解析正确的状态。有点像

if="{{hasSubtitle(item)}}"

hasSubtitle function(item) {
return item.info && item.info.subtitle;
}

关于polymer - Polymer 1.x 的 dom-if 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com