Tho*_*lds 3 jquery jquery-templates knockout.js
我想我今天刚刚盯着我的屏幕太久了 - 我在这里找不到错误.我有一个jQuery模板,我正在使用KnockoutJS的foreach.在里面我有一个按钮,我试图调用函数onclick并传入迭代值.这是模板的片段.我能想到的唯一一件事就是我的jQuery模板语法是错误的,因为它在其他地方工作
<button onclick="newTabify(${$data})">Chat</button>
我的模板看起来像这样......(里面的按钮,以及其他一些东西)
<div data-bind='template: {name: "contactTemplate", foreach:contacts}' id="contactList"></div>
<script id='contactTemplate' type='text/html'>
...
</script>
Run Code Online (Sandbox Code Playgroud)
newTabify函数如下所示:
function newTabify(contact) {
tabify($.inArray(contact, viewModel.contacts()));
}
Run Code Online (Sandbox Code Playgroud)
这里极端奇怪的是错误.
SCRIPT1007: Expected ']'
default.html, line 1 character 19
Run Code Online (Sandbox Code Playgroud)
第1行是我的<head>标签!!
如果你需要更多标记只是lemme知道.谢谢!
编辑:这是我的联系模板.有趣的是,除了按钮上的点击事件,当我尝试添加如上所示的线时,它没有任何问题.但无论如何,这是剩下的.
{{if $data.jid() != viewModel.jid() }}
<div class="wrapper" onclick="wrapperClick(this)">
<div style="padding-bottom:4px">
<img src=images/${$data.avail}.png> ${ $data.name } <img class="avatar" src=images/${$data.img}><br> <span class="status">${$data.status }</span>
</div>
<a href="mailto:${$data.jid}" >${$data.jid}</a> | <button onclick="newTabify(${$data})">Chat</button> | <button onclick="event.stopPropagation();">Call</button>
</div>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
编辑2:$ data一个联系对象; 我正在遍历联系人(一个可观察的联系对象数组)并成功地将所有值拉出联系,等等.这是我的联系方式:
function contact(name, status, avail, jid, img, convIndex){
return {
name : ko.observable(name),
status : ko.observable(status),
avail : ko.observable(avail),
img : ko.observable(img),
jid : ko.observable(jid),
convIndex: ko.observable(convIndex)
};
Run Code Online (Sandbox Code Playgroud)
}
所以从技术上讲,$ data应该是上述的一个实例.
我不能保证这是你唯一的问题,但这条线不会给你你所期望的:
<button onclick="newTabify(${$data})">Chat</button>
Run Code Online (Sandbox Code Playgroud)
执行$ {$ data}将为您提供对象的.toString().对于您的对象,它看起来像:
[object Object]
Run Code Online (Sandbox Code Playgroud)
所以,这不是有效的语法.
因为,你正在使用Knockout,你可以做这样的事情(甚至在模板内),它将正确传递实际对象:
<button data-bind="click: function() { newTabify($data); }">Chat</button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4351 次 |
| 最近记录: |