Sto utilizzando Knockout 3.2 e il nuovo sistema di componenti. Sto cercando di avere componenti che includono sottocomponenti.Knockout 3.2 contesto dati componenti
Home Page (component - with HomePageViewModel) NewsFeed1 (component with HomePageViewModel.NewsFeedViewModel1) NewsFeed2 (component with HomePageViewModel.NewsFeedViewModel2)
HomePageViewModel
var viewModel = (function() {
function viewModel() {
this.message = ko.observable("Welcome to DKT!");
this.newsFeedViewModel = new gr.viewModel();
this.newsFeedViewModel2 = new gr.viewModel();
this.newsFeedViewModel.message("Message 1");
this.newsFeedViewModel2.message("Message 2");
}
return viewModel;
})();
NewsFeedViewModel
var viewModel = (function() {
function viewModel() {
this.message = ko.observable("This is the profile!");
}
return viewModel;
})();
Come si può vedere la HomePageViewModel
contiene sia il NewsFeedViewModel
. Ora voglio essere in grado di usarli come DataContext/BindingContext dei miei due componenti, ma questo non sembra funzionare.
Home.html
<news-feed data-bind="newsFeedViewModel"></news-feed>
<news-feed data-bind="newsFeedViewModel2"></news-feed>
Entrambi questi componenti non utilizzano i ViewModels dal HomePageViewModel
ma utilizza una nuova NewsFeedViewModel
. Come posso fare in modo che il datacontext di entrambi questi componenti si leghi con viewModels memorizzati nel componente principale (home)?
Grazie per questa soluzione, cercherò stasera e aggiornare il post. – user2465083
Funziona perfettamente. Grazie per l'aiuto :) – user2465083
Ciao di nuovo, potresti dare un'occhiata al seguente codice http://jsfiddle.net/fssXE/3/. Ho aggiunto una funzione in viewModel e l'ho associata a una funzione in viewModel. A questo punto, se provo ad accedere a qualsiasi dato da viewModel, sarà sempre indefinito. Non sono stato in grado di accedere ai dati dalle funzioni di viewModel. – user2465083