我正在使用x-tag。这是我正在编写的代码。我需要将这些div框的内容设置为自定义元素属性值的值。有可能做到这一点吗?我试着设置它,但我得到错误“未定义不是一个函数”。
var template = xtag.createFragment(function(){/*
<div>
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
</div>
*/});
xtag.register('x-navbar', {
lifecycle: {
created: function() {
this.appendChild(template.cloneNode(true));
this.getElementById("#box1").innerHTML = this.productName;
},
accessors: {
productName: {
attribute: {},
get: function(){
return this.getAttribute('productName') || "";
},
set: function(value){
this.xtag.data.header.setAttribute('productName',value);
}
}
}
});
<x-navbar productName="Box 1">hii</x-navbar>发布于 2016-02-19 07:57:24
您可以进一步简化此过程,因为您不需要更改设置器中的productName:
xtag.register('x-navbar', {
content: function() {/*
<div>
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
</div>
*/},
accessors: {
productName: {
attribute: {},
set: function (name) {
this.querySelector('#box1').textContent = name;
}
}
}
});您可以像这样使用它:
<x-navbar product-name="Testing 123">hii</x-navbar>请注意,属性名必须是productName product-name的dasherized版本。这将呈现为:
hii
Testing 123在元素的内容hii之后添加模板<div>结构。
发布于 2015-11-29 01:48:47
您可以像这样编写支持访问器的属性。您不需要手动尝试设置属性。因为它会将自身从get函数更新为返回值。
accessors: {
productName: {
attribute: {},
get: function () { return this._productName; },
set: function (value) {
this._productName = value;
// MANUPLATE YOUR HTML IN HERE
this.getElementById("#box1").innerHTML = this.productName;
}
},
}https://stackoverflow.com/questions/27128509
复制相似问题