0
我將如何在Knockout中串聯數組字符串?我想要做這樣的事情:敲除數據綁定字符串連接數組
<span data-bind='text: foreach person in persons person.name+","+person.age>
明顯的語法是錯誤的,但它可以做一些像上面沒有爲每個人創建多個跨度?
我將如何在Knockout中串聯數組字符串?我想要做這樣的事情:敲除數據綁定字符串連接數組
<span data-bind='text: foreach person in persons person.name+","+person.age>
明顯的語法是錯誤的,但它可以做一些像上面沒有爲每個人創建多個跨度?
你可以在data-bind中使用任何一種有效的javascript。因此認爲可以做這樣的事情:
選項1 - See fiddle
假設這樣一個模型:
var model = {
people : ko.observableArray([
{name: "Name1", age: 30},
{name: "Name2", age: 31},
{name: "Name3", age: 32},
])
}
ko.applyBindings(model);
我們可以這樣做:
<span data-bind='text: people().map(function(p){return p.name + "," + p.age}).join(", ")'> </span>
選項2 - See fiddle
但就是不嵌入coplex內嵌的JavaScript一個很好的做法,我會建議創建一個計算的屬性這樣
var model = {
people : ko.observableArray([
{name: "Name1", age: 30},
{name: "Name2", age: 31},
{name: "Name3", age: 32},
]),
}
model.allPeople = ko.computed(function() {
return model.people().map(function(p){return p.name + "," + p.age}).join(", ");
});
ko.applyBindings(model);
和HTML:
<span data-bind='text: allPeople'> </span>
您可以隨時使用一個計算該循環在observableArray上並連接一個字符串。但是,一般來說,當您開始進行計算觀察數組的業務時,您開始遇到大中型數據集的性能問題。 你能分享一下你爲什麼要這樣做嗎?是在你的foreach'ing人的HTML模板中唯一的地方? –