私は 2 つの ViewModel を持っています (ただし、'Person' ViewModel をモデルと考えたいと思います):
function Person() {
var self = this;
self.firstName = ko.observable("");
self.lastName = ko.observable("");
}
function AppViewModel() {
var self = this;
self.admin = ko.observable(null);
self.something = ko.observable("Hello World");
}
次に、AppViewModel.admin を Person のインスタンスに設定します。
var viewModel = new AppViewModel();
var bob = new Person();
bob.firstName("Sponge");
bob.lastName("Bob");
viewModel.admin(bob);
ko.applyBindings(viewModel);
次に、次のようにバインドしようとします。
<p><strong data-bind="text: admin.firstName"></strong></p>
<p><strong data-bind="text: admin.lastName"></strong></p>
<p><strong data-bind="text: something"></strong></p>
これの出力は次のようになると予想しました。
スポンジ
ボブ
ハローワールド
ただし、そうではなく、出力は単に「Hello World」
です (明らかに、「何か」は AppViewModel の監視対象であるため、その部分は機能します)。
なぜそれが機能しないのか、代わりに何をすべきかを誰かが説明できますか?
jsFiddle の完全な例: http://fiddle.jshell.net/XRPAH/1/