Knockout.js 获取 location.href 对象的属性
Posted
技术标签:
【中文标题】Knockout.js 获取 location.href 对象的属性【英文标题】:Knockout.js get property of an object for location.href 【发布时间】:2021-07-08 07:06:42 【问题描述】:我最近发现了 Knockout,我正在努力在 foreach 中获取对象的属性:
这是我的代码:
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Created By</th>
</tr>
</thead>
<tbody data-bind="foreach: assets">
<tr class="assets" data-bind="click: $parent.detailPage">
<td>
<span data-bind="text: FileName"></span>
</td>
<td>
<span data-bind="text: CreatedBy"></span>
</td>
</tr>
</tbody>
还有我的脚本:
<script>
function ViewModel(assets)
var self = this;
self.assets = assets;
self.detailPage = function (asset)
location.href = '@Url.Action("Details", "Assets")/' + asset.Id;
;
;
var jsonModel = new ViewModel(@html.Raw(Json.Encode(Model)));
var viewModel = ko.mapping.fromJS(jsonModel);
ko.applyBindings(viewModel);
在我的资产中,我有一个 ID,我想使用我单击的对象的 ID 打开我的视图。
但是当我执行该操作时,网址变为:http://localhost:62677/Assets/Details/[object Object]
有什么想法可以正确地做到这一点吗?
谢谢!
【问题讨论】:
【参考方案1】:假设asset.Id 是可观察的淘汰赛,试试这个
self.detailPage = function (asset)
location.href = '@Url.Action("Details", "Assets")/' + asset.Id();
;
【讨论】:
【参考方案2】:看起来asset.Id 是一个对象。 尝试调查为什么它是对象而不是某个数字或字符串。
【讨论】:
以上是关于Knockout.js 获取 location.href 对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Knockout.js 将多个 View 绑定到单个 ViewModel
通过 knockout.js 将选中的复选框值传递给 javascript
带有 HTML 到 PDF 转换器的 Knockout JS
Knockout js表编辑列获取onkeyup / Onchange最新值。 [小提琴](https://jsfiddle.net/chiks/975ncawv/521/)