作为一个总是使用Javascript的初学者,我决定尝试从非常简单的开始和更先进的基因敲除。然而,我甚至无法设法在一个非常简单的情况下运作。基因敲除文本绑定对输入不起作用
我猜这个问题很简单,我有点尴尬地问这里。但是我不擅长调试Javascript,也不知道bug如何表现出来。
这是网页的HTML源代码它已经被asp.net MVC 3生成后:
<html>
<head>
<title>Index</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
</head>
<body>
<h2>Index</h2>
<script src="/Scripts/knockout-1.3.0beta.debug.js" type="text/javascript"></script>
<script src="/Scripts/knockout-1.3.0beta.js" type="text/javascript"></script>
<script type="text/javascript">
var viewModel = {
name: "Joe",
number: "13"
};
</script>
<script type="text/javascript">
ko.applyBindings(viewModel);
</script>
<ul>
<li>Name: <input data-bind="text: name"/></li>
<li>Number: <input data-bind="text: number"/></li>
</ul>
<ul>
<li>Name: <span data-bind="text: name"></span></li>
<li>Number: <span data-bind="text: number"></span></li>
</ul>
</body>
</html>
乔或13不会被绑定到输入或文本框。
试图把它放在一个ko.observable(),但也不工作。这就像脚本没有运行。
尝试使用FireBug进行调试,我可以看到applyBinding被执行,并且viewModel对象包含正确的变量。
这可能是明显的事情在这里发生。如果你在这里看不到它,那么你能指出在使用FireBug时应该注意什么吗?
编辑
试图给我仍然有问题的解决方案的几种组合之后。有了一个解决方案的HTML看起来像这样:
<html>
<head>
<title>Index</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/knockout-1.3.0beta.debug.js" type="text/javascript"></script>
<script type="text/javascript">
var viewModel = {
name: ko.observable("Joe"),
number: ko.observable("13")
};
</script>
<script type="text/javascript">
$(function() { ko.applyBindings(viewModel); })
</script>
</head>
<body>
<h2>Index</h2>
<ul>
<li>Name: <input data-bind="text: name"></input></li>
<li>Number: <input data-bind="text: number"></input></li>
</ul>
<ul>
<li>Name: <span data-bind="text: name"></span></li>
<li>Number: <span data-bind="text: number"></span></li>
</ul>
</body>
</html>
似乎没有我使用哪种applyBindings解决方案,他们所有的工作一样。
所以绑定终于可以工作,但只能在IE和Firefox上使用,而不能在Chrome上使用。此外,观察结果完全不起作用。我无法通过写入输入字段来更新字段。
好吧,知道这很简单。那么惯例是使用这个jquery.ready方法?我想我可以谷歌了解它。 –
$(document).ready(ko.applyBindings(viewModel))应该怎么办?它不工作。 –
$(function(){ko。applyBindings(viewModel);})将可能更好地工作 –