[英]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.