我在polymer元素中有以下代码可以正常工作:
<i class="fa fa-user"></i>
但是,我想根据参数更改font-awesome图标。所以我改变了这一点:
<i class="fa fa-{{icon}}"></i>
然后我将以下属性添加到Polymer元素:
icon: {
type: String,
value: 'user'
}
按原样运行,甚至没有尝试传递不同的值,只是让它使用默认的'user'
,它没有正确呈现。 DOM就是这样:
<i class="style-scope widget-iconblock"></i>
我还尝试了其他一些事情,包括用<i>
替换整个{{i}}
代码,然后返回一个类似于"<i class='fa fa-" + self.icon + "'></i>"
的计算值,但会生成文字文字
我做错了什么?
答案 0 :(得分:3)
将属性绑定到本机属性需要Polymer's attribute-binding syntax(即class$="{{prop}}"
):
<head>
<base href="https://polygit.org/polymer+1.7.0/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css">
</head>
<body>
<x-foo></x-foo>
<dom-module id="x-foo">
<template>
<i class$="fa fa-{{icon}}"></i>
</template>
<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'x-foo',
properties : {
icon: {
type: String,
value: 'user'
}
}
});
});
</script>
</dom-module>
</body>
&#13;
答案 1 :(得分:0)
我最终将以下代码添加到Polymer
ready()
函数中:
$('#myelement').append("<i class='fa fa-" + self.icon + "'></i>");
我仍然希望看到其他/更好的答案。