问题是关于optionsText绑定以获取fullName .
当我这样做它工作as in Knockout doc,
<select multiple="multiple" width="50" data-bind="options: leftItems,optionsText: function(item) {return item.firstName() + ' ' + item.lastName() }, selectedOptions:leftSelectedItems"></select>
但是当我将函数移动到View Model并尝试使用它时不起作用,
这是我的选择,
<select multiple="multiple" width="50" data-bind="options: leftItems,optionsText: returnFullName(item), selectedOptions:leftSelectedItems"></select>
在我的视图模型中,
self.returnFullName = function(item) {
console.log("self.returnFullName called.");
console.log(item);
return item.firstName() + ' ' + item.lastName();
};
我得到的错误是“Uncaught ReferenceError:无法处理绑定”选项:function()“这甚至与optionText无关 .
我错过了什么吗?
1 回答
你不需要像你那样传递它 . 但是你可以遵循这些方法中的任何一种 .
您可以只调用viewmodel函数,第一个参数将隐式具有$ data参数 .
在VM中
的jsfiddle: -
http://jsfiddle.net/mtfv6q6a/10/
绑定$ data并像你一样传递它 .
的jsfiddle: -
http://jsfiddle.net/mtfv6q6a/42/
你可以将它包装在函数调用中并像这样调用: -
的jsfiddle: -
http://jsfiddle.net/mtfv6q6a/51/