Knockout.js - 数据绑定的javascript函数?’

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (55)

有什么方法可以像这样在数据绑定上调用JavaScript函数:

<span id="lblSomePropVal" data-bind="text: MySomeFunction(SomeProperty())" ></span>

我要做的是用我的视图模型的SomeProperty的值来调用MySomeFunction。我的SomeFunction将根据传递的值返回一些文本,并显示在span lblSomePropVal中。

我试过用我在示例中所写的方式,但是它会引发绑定错误。

我是不是漏了点什么,还是有别的办法?

这是我正在犯的错误:

Microsoft JScript runtime error: Unable to parse bindings.
Message: [object Error];
Bindings value: text: MySomeFunction(SomeProperty())
提问于
用户回答回答于

我有一个类似的问题,我试图计算表格单元格条目。我的办法是在我的数据模型中包含“MySomeFunction”,然后将数据绑定到我的表格单元格中,如下所示:

<td data-bind="text: $root.MySomeFunction(SomeProperty)"></td>
用户回答回答于

你可以使用任意JavaScript表达式进行绑定,但请记住,它们是在viewModel的上下文中计算的,因此表达式中的所有函数都必须是viewModel的属性。在你的情况下,MySomeFunction必须是你的视图模型的属性。如果使用映射插件创建视图模型,则可以将其他函数附加到视图模型,如下所示:

var viewModel = ko.mapping.fromJS(data.d)
viewModel.MySomeFunction = function(...){...};

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动