0

次の方法でビュー モデルを設定する場合、マークアップでデータ バインドを宣言する適切な方法は何ですか?

var Info;  // global
function initInfo() {
    Info = function () {
        var self = this;

        self.tag = ko.observable(null);       
        self.blurb = ko.observable(null);

        self.tag.subscribe(function (newValue) {            
           alert(newValue);
       });

    };   
}

私はバインディングを呼び出します:

   ko.applyBindings(Info, document.getElementById("tag"));

コンソールに次のエラーが表示されます:ReferenceError: tag is not definedこのマークアップで:

   <input type="text" name="tag" id="tag" data-bind="value:tag" />

しかし、Info ビュー モデルを以下のようにオブジェクトとして設定すると、そのような問題は発生せず、バインディングは成功します。

 var Info = {

       tag: ko.observable(null)
       .
       .
       .


   }
4

1 に答える 1

1

情報は関数であり、オブジェクトではありません。結果のオブジェクトを applyBindings に渡すために、'new Info()' を呼び出す必要があります。

于 2013-09-15T15:57:14.473 に答える