2013-04-24 77 views
0

如果我有:如何将几个输入值传递给绑定函数?

... 
    <li>Title: <input id="name" /></li> 
    <li>Author: <input id="author" /></li> 
    ... 

<button data-bind='click: $root.Add'>Add</button>

,我想在用户输入传递给绑定到一个按钮的功能(Add),我将如何做到这一点?

我不知道如何拉值,然后将它们作为参数传递。

+0

这是结合一个foreach约束力的内部发生了什么? – PatrickSteele 2013-04-24 19:37:16

+0

@PatrickSteele不,它不是。 – Yatrix 2013-04-24 19:38:11

回答

1

您可以绑定您的方法调用,以使用viewmodel($ root)作为您的方法的“this”上下文。然后,只需访问属性,你通常会:

http://jsfiddle.net/psteele/Wf9xj/

<div>Title: <input id="name" data-bind="value: name" /></div> 
<div>Author: <input id="author" data-bind="value: author" /> 
    <input type="button" value="X" data-bind="click: show.bind($root)"></input></div> 

var vm = { 
    name: 'Bob', 
    author: 'King', 
    show: function() { 
     alert(this.name + '-' + this.author); 
    } 
} 

ko.applyBindings(vm); 
+0

好吧,所以基本上输入必须也必然真正处理这个。 – Yatrix 2013-04-24 19:59:48

+0

正确。一旦绑定,这变得非常容易。 – PatrickSteele 2013-04-24 20:18:43