如何将自定义参数传递给文本绑定?
我的 HTML
<span data-bind="text: something"></span>
我真的很想要这样的东西
<span data-bind="text: something('123456')"></span>
这样span
最终会包含文本“发送的内容 123456”
self.something = ko.computed(function(p)
{
return "Something was sent " + p;
}, this);
最重要的问题是我有几个跨度,每个跨度与可观察数组的计数不同。我曾经使用过这个,但是在我的 ViewModel 中拥有所有这些非常相似的计数函数似乎很麻烦。
<span data-bind="text: countFemale"></span>
<span data-bind="text: countMale"></span>
<span data-bind="text: countFrogs"></span>
<span data-bind="text: countCars"></span>
编辑
我的计数功能看起来像这样
self.areaCount = ko.computed(function(areaName)
{
console.log(this);
var c = 0;
$.each(self.progression(), function(i, obj){
if(obj.model.area() == areaName)
c++;
});
if(c == 0)
return '';
return "(" + c + ")";
}, this);
请注意,我希望能够传入 anareaName
以避免有很多这样的功能
self.areaCount = ko.computed(function()
{
console.log(this);
var c = 0;
$.each(self.progression(), function(i, obj){
if(obj.model.area() == "male")
c++;
});
if(c == 0)
return '';
return "(" + c + ")";
}, this);
self.areaCount = ko.computed(function()
{
console.log(this);
var c = 0;
$.each(self.progression(), function(i, obj){
if(obj.model.area() == "female")
c++;
});
if(c == 0)
return '';
return "(" + c + ")";
}, this);
self.areaCount = ko.computed(function()
{
console.log(this);
var c = 0;
$.each(self.progression(), function(i, obj){
if(obj.model.area() == "frogs")
c++;
});
if(c == 0)
return '';
return "(" + c + ")";
}, this);
self.areaCount = ko.computed(function()
{
console.log(this);
var c = 0;
$.each(self.progression(), function(i, obj){
if(obj.model.area() == "cars")
c++;
});
if(c == 0)
return '';
return "(" + c + ")";
}, this);