【问题标题】:In knockout data-bind attr bind not working?在淘汰赛数据绑定 attr 绑定不起作用?
【发布时间】:2014-01-09 02:07:10
【问题描述】:

点击链接(标签)时出现问题。它包含数据绑定,通过使用 attr 绑定我提供 url,同时使用点击绑定 我的问题是单击绑定正在工作,但不能通过 attr binding 重定向 url。 我试试这个代码..

 viewModel.printbill = function () {
    var dta = ko.utils.arrayFilter(viewModel.Bills(), function (item) {
        return item.BillID == viewModel.BillID();
    });
    if (dta != null) {
        var data = {
            List: dta
        }
        localStorage.setItem('SelectedBill', JSON.stringify(data));
    }
};

<a target="_blank" title="" data-bind='attr: {href:"@Href("~/billing/BillPrint") "},click:printbill'> 单击此链接时 我有一个点击绑定:printBill,它用于从按钮点击中选择一个特定的 id 并映射到 localstorage ...一切都很好..但是..我无法将屏幕重定向到另一个选项卡。

【问题讨论】:

  • printBill 是做什么的?如果它返回 false,那么我认为这将阻止浏览器跟踪该链接。

标签: knockout.js


【解决方案1】:

如果您在链接上同时具有click 绑定和href,那么您需要从绑定中返回true,以便遵循href - 将其视为能够取消点击(以及导航) .

 viewModel.printbill = function () {
    var dta = ko.utils.arrayFilter(viewModel.Bills(), function (item) {
        return item.BillID == viewModel.BillID();
    });
    if (dta != null) {
        var data = {
            List: dta
        }
        localStorage.setItem('SelectedBill', JSON.stringify(data));
    }
    return true; // <---- here
};

【讨论】:

  • 它就像弹出一样...我想在当前浏览器的新标签中打开该网址...我该怎么办?
  • 您的链接中有target="_blank"。这就是为什么它打开一个新窗口
【解决方案2】:

而不是使用链接使用按钮来重定向和点击

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多