0

チーム、

次のようなビューモデルを持つ非常に単純な 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 も十分に単純です。1 つの入力と 1 つのスパンが、監視可能な同じプロパティ firstName にバインドされています。しかし、入力から値を変更すると、スパンが更新されないという問題があります。私は何が欠けていますか?よろしくVivek

4

2 に答える 2

7

firstName()に変更firstName

<p>First Name: <input data-bind="value:  firstName" /></p>
<p>First Name From span: <span data-bind="text: firstName" ></span> </p>
于 2013-05-21T16:27:18.553 に答える
4

ここには 2 つの問題があります。

  1. カルディオが述べたように、必要のないときにバインディングにブラケットを配置しています. これを修正する方法については、彼の回答を参照してください。
  2. あなたの PersonViewModel は少し間違っています。「これ」を入れるのを忘れました。firstName プロパティの前。次のように修正します。

    function PersonViewModel()
    {
        this.firstName = ko.observable("FirstN");
    };
    
于 2013-05-21T21:45:12.377 に答える