1

本当に簡単な質問がありますが、何が欠けているのか理解できません。コードは次のとおりです。

$(document).ready(function() {
var viewModel = {
    test: ko.observable(null)
}
var obj = {
    name: "name123"
}
viewModel.test(obj);    
ko.applyBindings(viewModel.test, document.getElementById("a"));
alert(viewModel.test.name());
});​

jsfiddle へのリンク: http://jsfiddle.net/bwkAB/ name プロパティの値を取得できないのはなぜですか?

更新: viewModel.test().name である必要があります

4

1 に答える 1

3

これが修正されたjsfiddleです。子オブジェクトのプロパティにバインドするには、子オブジェクトのプロパティを監視可能にする必要があります。with バインディングを追加して、HTML のスコープを支援するだけでなく、

$(document).ready(function() {
    var viewModel = {
        test: ko.observable(null)
    }
    var obj = {
        name: ko.observable("name123")
    }
    viewModel.test(obj);    
    ko.applyBindings(viewModel);
    alert(viewModel.test().name());
});​
于 2012-12-29T20:32:59.533 に答える