Cha*_*SFT 5 polymer polymer-1.0
我有一个渲染数组对象的简单模板.但是,它失败并显示以下消息:
[dom-repeat::dom-repeat]: expected array for `items`, found [{"code":1,"name":"Item #1"},{"code":2,"name":"Item #2"},{"code":3,"name":"Item #3"}]
Run Code Online (Sandbox Code Playgroud)
该数组以自定义元素的属性传递,格式如下:
[{"code":1,"name":"Item #1"},{"code":2,"name":"Item #2"},{"code":3,"name":"Item #3"}]
Run Code Online (Sandbox Code Playgroud)
我已经多次阅读模板转发器上的文档但仍然无法找到我做错了什么.
任何帮助将非常感激!
这是我的自定义元素:
<dom-module id="x-myelement">
<template>
<div>
<h1>{{title}}</h1>
<ul>
<template is="dom-repeat" as="menuitem" items="{{items}}">
<li><span>{{menuitem.code}}</span></li>
</template>
</ul>
</div>
</template>
<script>
(function() {
Polymer({
is: 'x-myelement',
title: String,
items: {
type: Array,
notify: true,
value: function(){ return []; }
}
});
})();
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
现在我用它了:
<x-myelement title="Hello Polymer"
items='[{"code":1,"name":"Item #1"},{"code":2,"name":"Item #2"},{"code":3,"name":"Item #3"}]'>
</x-myelement>
Run Code Online (Sandbox Code Playgroud)
您需要将元素属性放入properties对象中(请参阅有关属性的 Polymer 文档):
Polymer({
is: 'x-myelement',
properties: {
title: String,
items: {
type: Array,
notify: true,
value: function() {return [];}
}
}
});
Run Code Online (Sandbox Code Playgroud)
否则,Polymer 没有关于您的属性的信息。它将项目视为字符串,并且不将属性值解析为 JSON 数组。最终也dom-repeat为其items属性传递了一个字符串,导致您看到的错误。
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |