gpt4 book ai didi

javascript - Knockoutjs 正确绑定(bind)但是标签上的 href 不会重定向到页面

转载 作者:可可西里 更新时间:2023-11-01 12:58:28 24 4
gpt4 key购买 nike

我有这个 html:

<ul class="nav nav-tabs ilia-cat-nav" data-toggle="dropdown" data-bind="foreach : Items" style="margin-top:-30px">
<li role="presentation" data-bind="attr : {'data-id' : ID , 'data-childCount' : Children().length}" style="padding-left: 20px; padding-right: 20px; text-align: center; color: white" class="active-li">
<label id="menu1" data-toggle="dropdown" data-bind="text: Name"></label>
<ul class="dropdown-menu" data-bind="foreach: Children" role="menu" aria-labelledby="menu1">
<li role="presentation"><a role="menuitem" data-bind="text: Name, attr: { 'href': Url} "></a></li>
</ul>
</li>
</ul>

使用 knockoutjs 在顶部创建了我的菜单,它完美地工作并且 a 标签上的 href 属性被正确填充,如 href="/site/models# {"catId": "76b4a8ed-1350-46af-8184-3b68029cbd22"}" 但是,当我点击该项目时,它不会重定向到新页面。我的第一个想法可能是因为哈希,但事实并非如此,所以我尝试对任何 _self 和所有其他它不起作用的属性使用 target 属性。所以我的下一个猜测是有一个 javascript 方法覆盖了它,到目前为止我还没有找到任何东西。所以我的问题是为什么它不起作用?

KnockOut View 模型:

landing.dataModels.Category = function (_id, _categoryTypeId, _name, _description, _parentId, _children) {

var self = this;

this.ID = ko.observable(_id);
this.CategoryTypeId = ko.observable(_categoryTypeId);
this.Name = ko.observable(_name);
this.Description = ko.observable(_description);
this.ParentId = ko.observable(_parentId);
this.Url = ko.computed(function () {
return '/site/models#{"catId": "' + self.ID() + '"}';
});
this.Children = ko.observableArray([]);
this.getChildren = ko.computed(function () {
return self.Children();
});
_.each(_children, function (item) {
self.Children.push(new landing.dataModels.Category(item.ID, item.categoryTypeId, item.Name, item.Description, item.ParentId, item.Children));
});
};

更新

我不得不说,当我右键单击该项目并在新窗口中打开时,它确实有效并显示了该页面,但它无法直接左键单击。

最佳答案

问题可能出在生成的 URL 中的引号中:

href="/site/models#{"catId": "76b4a8ed-1350-46af-8184-3b68029cbd22"}"

href 的值实际上是 "/site/models#{",将 URL 的其余部分保留为无效的 HTML。

您可以尝试绑定(bind)到转义的 URL:

this.Url = ko.computed(function () {
return encodeURI('/site/models#{"catId": "' + self.ID() + '"}');
});

关于javascript - Knockoutjs 正确绑定(bind)但是标签上的 href 不会重定向到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45543033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com