1
我尝试在dom-repeat
助手使用计算的属性,但它会立即抛出异常后,我点击按钮(请参见下面的代码,包版本:sdk: 0.12.2
,polymer: 1.0.0-rc.5
,polymer_interop: 1.0.0-rc.4+1
)。什么可能是错的?当我替换{{computedItems}}
与{{items}}
一切工作正常。计算属性不起作用
class Item extends JsProxy{
@reflectable
String a="aaa aaa";
@reflectable
String b="bbb bbb";
Item(this.a, this.b);
}
@PolymerRegister('main-app')
class MainApp extends PolymerElement {
@Property(computed:"getItems(items.*)")
List<Item> computedItems;
@property
List<Item> items = [];
@property
String inp = '';
MainApp.created() : super.created();
@reflectable
List<Item> getItems(_) {
return items;
}
@reflectable
void onTap(Event ev, Map details) {
add("items", new Item(inp, 'aa'));
set("inp", "");
}
}
和html
文件:
<dom-module id="main-app">
<template>
<paper-input value="{{inp}}"> </paper-input>
<paper-button raised on-tap="onTap">add to list</paper-button>
<template is="dom-repeat" items="{{computedItems}}">
<div style="color:red">
<span>[[item.a]]</span>
<span>[[item.b]]</span>
</div>
</template>
</template>
</dom-module>
没有尝试,我认为它是'。*'在'项目*'。尝试只是'项目' –
我使用通配符,因为我想观察'Item'字段中的更改。无论如何,我已经将'items。*'改为'items',它仍然会抛出。 – kolar
我只是现在试图重现,我也遇到过,它不承认更改。我将其更改为'items',并且不再收到错误消息。你有使用“计算”的原因吗?至少在你的问题的最小例子中,它不是必需的。 –