私は自分の画面のメインビューモデルを持っています。 2つの子ビューモデルで構成されています。子ビューモデルが別の子ビューモデルを変更しています
登録セクションを処理します。 1人がログインセクションを処理します。 (認証され、どのようなメニュー項目に表示され、同様に「ようこそ 『のユーザー名ができれば一つは、メニューのセクションを扱う』タイプのもの)。
$(document).ready(function() {
// Create the main View Model
var vm = {
loginVm: new LoginViewModel(),
registerVm: new RegisterViewModel(),
layoutVm: new LayoutViewModel()
}
// Get the Reference data
var uri = '/api/Reference/GetTimezones';
$.getJSON({ url: uri, contentType: "application/json" })
.done(function (data) {
vm.registerVm.Timezones(data);
});
// Bind.
ko.applyBindings(vm);
});
を私のログインモデルの後は、 『ログイン』メソッドが完了すると、私は設定したいですメニュー・モデルと同様に、いくつかの他のユーザ情報内の値を「IsAthenticated」。
をだから私のログインモデルでは、私はサインインの方法を持っている。
$.post({ url: uri, contentType: "application/json" }, logindata)
.done(function (data) {
toastr[data.StatusText](data.DisplayMessage, data.Heading);
if (data.StatusText == 'success') {
alert($parent.layoutVm.IsAuthenticated());
}
else {
}
})
.fail(function() {
toastr['error']("An unexpected error has occured and has been logged. Sorry about tbis! We'll resolve it as soon as possible.", "Error");
});
警告コード私のテストである。私はのIsAuthenticatedプロパティへのアクセス(および設定)を望むlayoutVmモデルそれは私のメインのViewモデルの子モデルの1つです。
ただし、 "$ parent"は定義されていません。
loginVmからlayoutVmの値を更新するにはどうすればよいですか?
を更新しないように注意する必要がありますので、私はサインインと推定ユーザアクションの後にコールが行われますか? –