私は、ユーザーが認証されている場合にのみ表示したいdivがあるメニューバーを持っています。私のJavaScriptファイルは、このコードがありますので、メインビューモデルの子VMにアクセス
var UserViewModel = function() {
var self = this;
self.Name = ko.observable("");
self.IsAuthenticated = ko.observable(false);
self.SignOut = function() {
var uri = '/api/User/Logout'
$.getJSON({ url: uri, contentType: "application/json" })
.done(function() {
window.location.href = "/Pages/Index";
});
}
}
$(document).ready(function() {
var vm = {
loginVm : new LoginViewModel(),
registerVm: new RegisterViewModel(),
userVm: new UserViewModel()
}
var uri = '/api/User/Get'
$.getJSON({ url: uri, contentType: "application/json" })
.done(function (data) {
vm.userVm.Name(data.Name);
vm.userVm.IsAuthenticated(data.IsAuthenticated);
});
ko.applyBindings(vm, $('#LayoutSection')[0]);
GetTimezones();
});
を、画面負荷、それは呼び出しを行う際に「/ API /ユーザー/取得」およびユーザーオブジェクトを取得し、その後、名前のビューモデルを移入し、ユーザーが認証されている場合
他の2つのビューモデルでも、そのビューモデルはメインビューモデルに割り当てられます。
私のHTMLでは、データをそのビューモデルの 'IsAuthenticated'プロパティにバインドして可視性を持たせようとしています。
data-bind="visible: userVm.IsAuthenticated"
ただし、userVm.IsAuthenticatedは表示されないようです。
どうすればそのプロパティにアクセスできますか?