Polymer 1.0中自动绑定模板中的计算绑定

Polymer 1.0中自动绑定模板中的计算绑定,polymer,polymer-1.0,Polymer,Polymer 1.0,如何在自动绑定模板(即声明为…)中定义计算绑定?只需通过脚本将计算绑定直接分配给模板元素,确保在定义计算绑定后初始化相关属性 例如: [[描述(文本)]] (功能(){ var template=document.querySelector('template[is=“dom bind”]”); template.descripe=函数(文本){ 如果(文本){ 返回“您输入了“+text+”,即“+text.length+”个字符长”; }否则{ return“你连一件东西都没进去!真丢脸!

如何在自动绑定模板(即声明为
)中定义计算绑定?

只需通过脚本将计算绑定直接分配给模板元素,确保在定义计算绑定后初始化相关属性

例如:


[[描述(文本)]]
(功能(){
var template=document.querySelector('template[is=“dom bind”]”);
template.descripe=函数(文本){
如果(文本){
返回“您输入了“+text+”,即“+text.length+”个字符长”;
}否则{
return“你连一件东西都没进去!真丢脸!”;
}
};
template.text='';
})();

这是可行的,但绑定发生在渲染之后。因此,如果我初始化
template.text='initialtext'紧跟在
var template=document.querySelector(“…”)之后,计算的绑定不会立即呈现:我在控制台输出中收到一条警告
[dom绑定::\u annotatedComputingEffect]:计算方法“descripe”未定义
。但是,当我开始在输入框中键入时,绑定确实发生了。对此有何想法?@es_代码,我继续在本地复制上面的代码,并运行它来尝试发现问题;不幸的是(或幸运的是?)我在Chrome和Firefox的控制台上都没有收到任何警告/错误。您能否提供更多关于您看到警告的环境的详细信息?我还建议更新到Polymer和WebComponents.js polyfill的最新次要版本,以消除版本问题。我很想尝试复制这个!。我在javascript代码中添加了一个
setTimeout
延迟来模拟我正在处理的环境。这里的要点是,从声明
is=“dom bind”
元素到执行定义
descripe
的代码可能需要一些时间。在常规聚合物元素中,这不是问题,因为所有必要的绑定都会及时发生。(我还添加了
template.text='initial text';
以明确计算的绑定不是最初计算的。请查找
[dom bind::…method'descripe'not defined
警告。)@es_code Hm。我想我明白你现在的意思。不过,为什么要在设置属性值之后设置计算绑定定义?这类似于在定义函数之前调用函数。你能在这里更深入地描述一下用例吗?我理解你所描述的延迟,但我想了解的是为什么是首先有延迟吗?如果在HTML文档中的
定义之后立即设置绑定,则不会有任何问题,因为它将在加载文档之前执行,也就是在加载模板时执行。Good point@Vartan。计算绑定中涉及的所有属性都应在编译后初始化定义UTE绑定是为了避免上述注释中描述的情况。我想不出在设置属性值后需要定义计算绑定的用例。