Javascript 基于第一个淘汰教程,为什么我的代码没有运行?
我理解教程在页面上的工作原理,但我试图在本地设置一个来创建一个计算器,但无法让knockout.js工作。它不像knockout.js在线教程那样初始化或填充 HTMLJavascript 基于第一个淘汰教程,为什么我的代码没有运行?,javascript,data-binding,knockout.js,Javascript,Data Binding,Knockout.js,我理解教程在页面上的工作原理,但我试图在本地设置一个来创建一个计算器,但无法让knockout.js工作。它不像knockout.js在线教程那样初始化或填充 HTML 有什么建议吗?您正在头脚本标记中应用绑定,因此在ko.applyBindings(new AppViewModel())行运行时,还没有任何要绑定的元素 可以为JQuery Window.load函数提供回调,以确保在应用绑定之前正确加载所有内容。例如: <script type="text/JavaScript" lan
有什么建议吗?您正在头脚本标记中应用绑定,因此在ko.applyBindings(new AppViewModel())行运行时,还没有任何要绑定的元素 可以为JQuery Window.load函数提供回调,以确保在应用绑定之前正确加载所有内容。例如:
<script type="text/JavaScript" language="javascript">
function AppViewModel() {
this.firstName = ko.observable("Bert");
this.lastName = ko.observable("Bertington");
}
// Activates knockout.js
$(window).load(function() {
ko.applyBindings(new AppViewModel());
});
</script>
函数AppViewModel(){
this.firstName=ko.可观察(“伯特”);
this.lastName=ko.observable(“伯丁顿”);
}
//激活knockout.js
$(窗口)。加载(函数(){
应用绑定(新的AppViewModel());
});
如果您没有使用jquery,请不要专门为此加载它。相反,您可以在window.onload上激活knockout。例如:
将ko.applyBindings调用包装到函数中:
function startKnockout() {
ko.applyBindings(new AppViewModel());
};
将“开始”函数的名称传递给window.onload。注意,不要将()添加到函数名中。这样可以防止函数立即执行,并确保在加载窗口时将其作为回调函数调用
window.onload = startKnockout;
这也需要JQuery插件。我通常建议使用这个,但我注意到您的示例代码中没有包含JQuery。问得好。我也有同样的问题。多亏了这个帖子。如果您不使用jQuery,我已经添加了一个答案。任何人都不应该仅仅为了解决这个问题而加载jQuery。
function startKnockout() {
ko.applyBindings(new AppViewModel());
};
window.onload = startKnockout;