我正在运行带有玉器的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/

10-13 01:52
查看更多