Ing*_*als 4 javascript firebug knockout.js
作为Javascripts的初学者,我决定尝试Knockout开始非常简单并且更先进.然而,我甚至无法在一个非常简单的场景中让它工作.
我猜这个问题非常简单,我有点不好意思在这里问这个问题.但我不擅长调试Javascript,也不知道bug会如何表现,所以这里就是这样.
这是asp.net MVC 3生成后页面的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>
</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>
Run Code Online (Sandbox Code Playgroud)
Joe或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>
Run Code Online (Sandbox Code Playgroud)
似乎没关系我使用哪个applyBindings解决方案它们都一样.
因此绑定最终有效,但仅适用于IE和Firefox,但不适用于Chrome.此外,观察结果根本不起作用.我无法通过写入输入字段来更新字段.
小智 10
输入标记应绑定为值而不是文本
例如
Name:<input data-bind="value: name"></input>
Run Code Online (Sandbox Code Playgroud)
必须在html完全加载后执行applyBindings.通常,我从jquery.ready方法调用它,但我想如果你把包含applyBindings的脚本块放在需要绑定的html标签之后它也会起作用.
| 归档时间: |
|
| 查看次数: |
11032 次 |
| 最近记录: |