繁体   English   中英

可观察到的基因敲出.js未更新

[英]knockout.js observable is not updating

球队,

我有一个非常简单的带有视图模型的html页面,如下所示。

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <script src='E:\Trials\ClientSide\MyTrials\knockout-2.2.1.js' type='text/javascript'></script>
    <script src='E:\Trials\ClientSide\MyTrials\jquery-2.0.0.js' type='text/javascript'></script>
    <title>Index</title>
    <script type="text/javascript">

        function PersonViewModel()
        {
            firstName = ko.observable("FirstN")
        };

        $(document).ready(function () {
            var person = new PersonViewModel();
            ko.applyBindings(person);
        });

    </script>
</head>
<body>
    <div>
        <h3>Details</h3>
        <p>First Name: <input data-bind="value:  firstName()" /></p>
        <p>First Name From span: <span data-bind="text: firstName()" ></span> </p>
    </div>
</body>
</html>

它非常简单和自我解释。 脚本块包含一个视图模型,并且在文档就绪功能上发生绑定。 而且html也很简单。 一个输入和一个跨度绑定到可观察到的相同属性firstName。 但是痛苦是当我从输入更改值时,跨度不会更新。 我想念什么? 关于Vivek

firstName()更改为firstName

<p>First Name: <input data-bind="value:  firstName" /></p>
<p>First Name From span: <span data-bind="text: firstName" ></span> </p>

这里有两个问题。

  1. 如Caludio所述,您在不需要时将括号放在绑定中。 请参阅他的答案以解决此问题。
  2. 您的PersonViewModel有点错误。 您忘记放置“此”了。 在firstName属性的前面。 像这样修复它:

     function PersonViewModel() { this.firstName = ko.observable("FirstN"); }; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM