簡體   English   中英

Node,Express,Jade呈現的頁面未與Knockout.js進行數據綁定

[英]Node,express,jade rendered pages doesn't data-bind with knockout.js

我正在運行帶有玉器的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的ready()函數中window.onload中的app.js中,或者將腳本標簽移動到<p>Hi,<strong data-bind="text: firstName"></strong></p>

//這是我的js文件(函數(){

//START THE APP WHEN DOCUMENT IS READY
$(function () {
    function AppViewModel() {
        var self = this;
        self.firstName = "Hamza";
       // self.lastName = ko.observable("Bertington");
    }
    ko.applyBindings(new AppViewModel());
});

})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM