1

私はknockOut.jsを学ぼうとしていますが、実際に軌道に乗ることはできません。ko.applyBindingsを呼び出すと、モデルは常に未定義です。

私はすでにここで答えられた解決策を試しました。

私もjsFiddleで試しました:ここ

私は次のhtmフォームを持っています:

<head>
   <title>Mashup</title>
   <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
   <script src="Scripts/knockout-2.2.0.js" type="text/javascript"></script> 
</head>

//html body    

 <script type="text/javascript">

   $(window).load(function () {

       function AppViewModel() {
           this.firstName = ko.observable("Bert");
           this.lastName = ko.observable("Bertington");
       }

       var model = ko.applyBindings(new AppViewModel());
       alert(model);
   });

また、ドキュメント対応を使用してみました。

   //I've also tried document ready but still not working.

   $(document).ready(function () {
       function AppViewModel() {
           this.firstName = ko.observable("Bert");
           this.lastName = ko.observable("Bertington");
       }

    var model = ko.applyBindings(new AppViewModel());
    alert(model);
});

私はirが本当に愚かなものになることを知っています。誰か助けてもらえますか?

4

3 に答える 3

1

ko.applyBindingsモデルを返しません。モデルを渡すapplyBindingと、htmlにバインドされます。コードを次のように変更します。

   function AppViewModel() {
       this.firstName = ko.observable("Bert");
       this.lastName = ko.observable("Bertington");
   }

   var model = new AppViewModel();
   ko.applyBindings(model);
   alert(model.firstName());
于 2012-12-06T12:09:02.057 に答える
1

ko.applyBindings()あなたが期待するものを返していません。モデルを作成してから、バインディングを適用します。これが更新されたフィドルです。

コード:

function AppViewModel() {
    this.firstName = "Davy";
    this.lastName = "Cassidy";
}

var model = new AppViewModel();
ko.applyBindings(model);


alert(model.firstName);
于 2012-12-06T12:09:16.023 に答える
1

あなたは2つの間違いを犯します:

  1. ko.applyBindings()はモデルを返しません。

    // Create the view model
    var model = new AppViewModel();
    
    // Apply bindings using this model
    ko.applyBindings(model);
    
  2. あなたのフィドルでは、<label>要素に「値」バインディングを使用しようとしています。何も入力できないため、このような要素には「value」プロパティはありません。ここで「テキスト」バインディングを使用する必要があります。

    <label id="lblFilename" data-bind="text: firstName"></label>
    

http://jsfiddle.net/4748N/8/

于 2012-12-06T12:09:49.753 に答える