我可以在淘汰赛中调用viewmodel之外的函数吗?

时间:2013-09-28 02:39:13

标签: javascript knockout.js jsfiddle

假设我想在我的一个数据绑定上调用我的普通javascript函数。有可能这样做吗? 我试过了: -

<span data-bind = "click : outsideFn() ">hi</span>

<span data-bind=" click : function() { outsideFn() } ">hi</span?

显然,我的尝试没有成功。

http://jsfiddle.net/RcxVj/

编辑: - 在标签上添加jsfiddle,因为这似乎是jsfiddle的一个问题。

2 个答案:

答案 0 :(得分:9)

是的,可以在数据绑定中调用普通的javascript函数。在你的项目中尝试它,它正在工作。 jsfiddle脚本中可能存在一些问题。

答案 1 :(得分:2)

,你可以。 请注意click绑定的 official Knockout documentation

  

您可以引用任何JavaScript函数 - 它不必是视图模型上的函数。您可以通过单击:someObject.someFunction。

来引用任何对象上的函数

工作示例:

https://jsbin.com/ciwofayegi/1/edit?html,css,js,output

HTML

<span data-bind="text: txt, click: outsideFn"></span>

<强>的Javascript

var outsideFn = function () {
    alert("outside function"); 
};

var vm = {
    "txt": ko.observable("some text")
};

ko.applyBindings(vm);