1
我創建了一個帶有一個頂欄(HeaderViewModel)和一個鏈接的應用程序,該應用程序使用登錄窗體(LoginViewModel)打開一個模式。在Knockoutjs中的ViewModels之間共享變量狀態
分配到模式的LoginViewModel處理登錄功能:
var LoginViewModel = function() {
var self = this;
self.email = ko.observable();
self.password = ko.observable();
self.loggedIn = ko.observable(false);
self.login = function() {
// loggedIn true if ajax succeeded
}
...
}
登錄(AJAX調用)後,已經成功的模式關閉,並且HeaderViewModel應該知道的loggedIn狀態,這樣的淘汰賽,如果/ else語句可以根據用戶角色處理可見性。
的#header(僅連接到HeaderViewModel):
<!-- ko if: loggedIn --> //loggedIn not known in HeaderViewModel
<p>Visible for logged in users</p>
<!-- /ko -->
app.js:
$(function() {
ko.applyBindings(new HeaderViewModel, $("#header")[0]);
ko.applyBindings(new LoginViewModel, $("#login")[0]);
});
我怎樣才能使這項工作?
我嘗試了兩種解決方案,但選擇了Knockout-postbox,因爲它感覺非常容易使用。謝謝! – Sam