想在knockoutJs中的一个绑定中使用两个单击功能

时间:2013-12-27 11:09:22

标签: data-binding knockout.js durandal

嗨大家好是淘汰赛的新手,我想在一个装订中使用两个点击功能。我尝试了如下,但只有第一部分正在工作。如果我使用attr:{href:'#/ User / Add /'+ user_id点击之后,attr将起作用,选择用户不能正常工作。在这方面请帮助我。使用Durandal作为一个漫游者

 <a data-bind="click: $root.SelectedUser,attr: { href: '#/User/Add/' + user_id }"></a>

2 个答案:

答案 0 :(得分:2)

我建议您在viewmodel中创建一个功能,选择用户,然后重定向到您想要的位置:

define(['plugins/router'], function(router){
var userIds = ['1', '2', '3'] //this is just an example. use your own ids here
var SelectedUser = ko.observable('');

var buttonClick = function(user){
    SelectedUser(user);
    router.navigate('#/User/Add/' + user);
}

return {
    userIds: userIds,
    buttonClick: buttonClick
}}
你的HTML中的

<ul data-bind="foreach: userIds">
<li>
    <a data-bind="click: $parent.buttonClick"></a>
</li>

答案 1 :(得分:0)

你有什么理由要这样做吗?

另一种方法是在点击事件中调用durandal路由。

var clickEvent = function(data, e) {
    doSelectedUserStuff();
    callDurandalRoute('#/User/Add/' + user_id);
}