knockout js中attr调用模型函数获取动态属性
call model function from attr in knockout js to get dynamic attributes
我对 knockout 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 被完全处理时)
您没有指定要设置的属性
我不知道你想设置哪个属性,但语法是:
data-bind="attr:{'class': getAttributeKeyValuePair()}"
这将导致
<span class="title : SampleTitle" >
attr
绑定处理程序需要一个对象,其中每个 属性-名称对应于属性名称,属性-值对应于属性值。
所以你的 getAttributeKeyValuePairCollection()
方法只需要 return object:
getAttributeKeyValuePairCollection: function() {
return {
href: 'test.html',
title: 'SimpleTitle'
};
}
在你的 data-bind
中:
<span data-bind="text: personName, attr: getAttributeKeyValuePairCollection()"></span>
我对 knockout 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 被完全处理时)
您没有指定要设置的属性
我不知道你想设置哪个属性,但语法是:
data-bind="attr:{'class': getAttributeKeyValuePair()}"
这将导致
<span class="title : SampleTitle" >
attr
绑定处理程序需要一个对象,其中每个 属性-名称对应于属性名称,属性-值对应于属性值。
所以你的 getAttributeKeyValuePairCollection()
方法只需要 return object:
getAttributeKeyValuePairCollection: function() {
return {
href: 'test.html',
title: 'SimpleTitle'
};
}
在你的 data-bind
中:
<span data-bind="text: personName, attr: getAttributeKeyValuePairCollection()"></span>