首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockout:名字-姓氏Joiner不起作用

Knockout:名字-姓氏Joiner不起作用
EN

Stack Overflow用户
提问于 2016-08-11 02:18:36
回答 1查看 301关注 0票数 0

我正在尝试使用knockout,并将用户输入的名字和姓氏连接在一起。它基于这个例子:http://knockoutjs.com/examples/helloWorld.html

我试着稍微修改一下函数来感受一下knockout。代码看起来不错,但输出没有变化。然后我测试了一下教程中的代码是否对我有效,但它不能。我非常确定我遗漏了一些非常明显的东西。谁能告诉我那是什么?

这是我的HTML:

代码语言:javascript
复制
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<!--view-->
<head>
    <meta charset="utf-8" />
    <title>Testing Knockout</title>
    <script src="knockoutTester.js"></script>
    <script src="knockout-3.4.0.js"></script>

</head>
<body>
    <p>First name: <input data-bind="value: firstName" /></p>
    <p>Last name: <input data-bind="value: lastName" /></p>
    <h2>Hello, <span data-bind="text: fullName"> </span>!</h2>


</body>                                             
</html>

这是我的JS:

代码语言:javascript
复制
var ViewModel = function (first, last) {
    this.firstName = ko.observable(first);
    this.lastName = ko.observable(last);

    this.fullName = ko.pureComputed(function () {
        return this.firstName() + " " + this.lastName();
    }, this);
};    
ko.applyBindings(new ViewModel("Planet", "Earth"));

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 02:38:24

您的JS代码很好。问题在于您在HTML文件中添加JS文件的顺序:

代码语言:javascript
复制
<script src="knockoutTester.js"></script>
<script src="knockout-3.4.0.js"></script>

为了让你的代码正常工作,你需要先加载Knockout,然后再加载你的自定义代码。因此将上面的代码行更改为

代码语言:javascript
复制
<script src="knockout-3.4.0.js"></script>
<script src="knockoutTester.js"></script>

它应该开始起作用了。

您还需要确保您的自定义JavaScript代码仅在加载DOM之后运行,因为所有DOM元素都应该在脚本运行时加载。您可以使用jQuery的方法$(document).ready或使用任何其他替代方法(例如,如$(document).ready equivalent without jQuery中所述)。

或者,您可以在正文的底部包含行<script src="knockoutTester.js"></script> (这样它只在加载上面的DOM之后加载)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38880791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档