我正在运行带有玉器的Express节点服务器。我正在尝试让我的客户端使用kickout.js,但是视图永远不会更新...我在控制台中没有任何错误,而且我只是无法弄清楚出什么问题了。
页:
extends layout
block content
script(src='knockout/knockout-2.2.1.debug.js', type='text/javascript')
script(src='js/app.js', type='text/javascript')
p Hi,
strong(data-bind="text: firstName")
呈现的html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
<script src="knockout/knockout-2.2.1.debug.js" type="text/javascript"></script>
<script src="js/app.js" type="text/javascript"></script>
<p>Hi,<strong data-bind="text: firstName"></strong></p>
</body>
</html>
app.js:
function AppViewModel() {
this.firstName = ko.observable("Bert");
this.lastName = ko.observable("Bertington");
}
ko.applyBindings(new AppViewModel());
我在这里缺少什么吗?还是无法通过Node.js来实现并表达?
最佳答案
您需要确保在DOM已加载后调用ko.applyBindings()
。
要么将代码包装在jQuery的window.onload函数中的ready()中的app.js中,要么将您的脚本标签移动到<p>Hi,<strong data-bind="text: firstName"></strong></p>
以下。
关于javascript - Node,Express,Jade呈现的页面未与Knockout.js进行数据绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16722871/