gpt4 book ai didi

asp.net-mvc - knockout : foreach not working with asp.net mvc

转载 作者:行者123 更新时间:2023-12-02 01:48:09 25 4
gpt4 key购买 nike

我知道这可能很容易,但不知何故我无法为 knockout 绑定(bind)实现 foreach。代码如下:

@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section scripts
{
<script type="text/javascript">
ko.applyBindings({
people: [
{ firstName: 'Bert', lastName: 'Bertington' },
{ firstName: 'Charles', lastName: 'Charlesforth' },
{ firstName: 'Denise', lastName: 'Dentiste' }
]
});
</script>
}

<div>
<table>
<thead>
<tr><th>First name</th><th>Last name</th></tr>
</thead>
<tbody data-bind="foreach: people">
<tr>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
</table>
</div>

渲染后的 HTML 如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - My ASP.NET Application</title>
<link href="/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>

<script src="/Scripts/modernizr-2.6.2.js"></script>


</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Application name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Home/Contact">Contact</a></li>
</ul>
</div>
</div>
</div>
<div class="container body-content">

<div>
<table>
<thead>
<tr><th>First name</th><th>Last name</th></tr>
</thead>
<tbody data-bind="foreach: people">
<tr>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
</table>
</div>

<hr />
<footer>
<p>&copy; 2014 - My ASP.NET Application</p>
</footer>
</div>

<script src="/Scripts/jquery-1.10.2.js"></script>

<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>

<script src="/Scripts/knockout.debug.js"></script>
<script src="/Scripts/knockout.mapping-latest.debug.js"></script>


<script src="/Scripts/knockout.js"></script>
<script src="/Scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript">
ko.applyBindings({
people: [
{ firstName: 'Bert', lastName: 'Bertington' },
{ firstName: 'Charles', lastName: 'Charlesforth' },
{ firstName: 'Denise', lastName: 'Dentiste' }
]
});
</script>

</body>
</html>

问题是 foreach 不能像代码中实现的那样工作。我得到的错误是(使用 Knockout 上下文调试):

ExtensionError: TypeError message: "Object.getOwnPropertyNames calledon non-object" stack: (...) get stack: function () { [native code] }set stack: function () { [native code] }proto: Error info: "Please select a dom node with ko data."

Uncaught TypeError: undefined is not a function

我已经尝试了一段时间,但没有成功。谢谢。

The binding is shown when I debug using knockout context debugger

最佳答案

所以我解决了!

问题是knockout 2.0有一行代码:

var elems = jQuery['clean']([html]);

但是我使用的 jQuery 1.10 弃用了 clean 方法。所以我将我的 Knockout 升级到 3.0,它成功了!

感谢@Boaz 回答这个 question on stackoverflow

关于asp.net-mvc - knockout : foreach not working with asp.net mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229507/

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