Paw*_*zka 9 javascript knockout.js
我有一个Knockout.js的问题.我想将用户名传递给一个函数并在警报时显示它.发生了一些奇怪的事情.每当我用正确的用户名刷新页面时,我都会收到警报,但是在我点击它之后我没有得到任何回复.这有什么不对?这是我的代码:
<ul data-bind="foreach: contacts">
<li class="user-box"><span class="user-box-name" data-bind="text: username, click: $root.userClick(username)"></span>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和
self.userClick = function (x) {
alert(x);
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*ado 29
该click绑定接受在单击控件时要调用的回调函数.
但是在您的示例中,您将调用该函数.所以每次加载页面时都会发生这种情况,加载绑定并在编写函数时调用它.你需要将它包装在一个函数中,这样它就不会被调用.
<span class="user-box-name"
data-bind="text: username, click: function () { $root.userClick(username); }">
</span>
Run Code Online (Sandbox Code Playgroud)
Tom*_*lak 11
Knockout将正确的对象传递给事件处理程序.就这样做:
<ul data-bind="foreach: contacts">
<li class="user-box">
<span
class="user-box-name"
data-bind="text: username, click: $root.userClick"
></span>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和
self.userClick: function (obj, event) {
alert(obj.username);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18860 次 |
| 最近记录: |