我对淘汰js不太流利,所以这可能是一个愚蠢的。
我的模型看起来像这样:
var myViewModel = {
personName: 'Bob',
attributesAttached: 'title:SampleTitle',
getTitle : function(){
return "SampleTitle";
},
getAttributeKeyValuePair : function(){
return "title : SampleTitle";
},
getAttributeKeyValuePairCollection : function(){
return "title : SampleTitle , href : test.html";
}
};
ko.applyBindings(myViewModel);
我的工作 html如下所示:
The name is
<span data-bind="text: personName,attr: { title : getTitle() }"></span>
我想实现这个目标:
无法正常工作
The name is
<span data-bind="text: personName,attr: { getAttributeKeyValuePair() }"></span>
因为稍后某些属性或方法会给我一组属性键值对
无法正常工作
The name is
<span data-bind="text: personName,attr: { getAttributeKeyValuePairCollection() }"></span>
我如何才能完成这项工作,以便我可以动态生成我的属性名称及其各自的值(当我的JSON完全处理时)
答案 0 :(得分:1)
attr
绑定处理程序期望一个对象,其中每个属性名称对应于属性名称,属性值对应于属性值。
所以你的getAttributeKeyValuePairCollection()
方法只需要返回对象:
getAttributeKeyValuePairCollection: function() {
return {
href: 'test.html',
title: 'SimpleTitle'
};
}
在您的data-bind
:
<span data-bind="text: personName, attr: getAttributeKeyValuePairCollection()"></span>
答案 1 :(得分:0)
您没有指定要设置的属性
我不知道你要设置哪个属性,但语法是:
data-bind="attr:{'class': getAttributeKeyValuePair()}"
这将导致
<span class="title : SampleTitle" >