我有以下Knockout代码
my Knockout code
我尝试每行返回mealName 此功能获取当前availableMeals的ID 并且应该返回一个对象
self.getMealById = function(id) {
ko.utils.arrayFirst(self.availableMeals, function(item) {
return item.id == id;
});
};
<span data-bind="text: $root.getMealById(meal.id)" />
出于某种原因,她没有这样做,为什么?
答案 0 :(得分:1)
arrayFirst
将返回一个对象,并且您正在尝试将对象绑定到输入字段中的文本值,这将无效。
如果你的函数是返回一个字符串值,它会正常工作,这是更新的小提琴:
http://jsfiddle.net/B66np/133/
新功能将膳食名称作为字符串值,请注意.mealName;
末尾的arrayFirst
:
self.getMealNameById = function (id) {
var meal = ko.utils.arrayFirst(self.availableMeals(), function (item) {
return item.id == id;
}).mealName;
return meal;
};
另外,更新data-bind
上的input
以使用新功能:data-bind="value: getMealNameById(1)"