Ich benutze Knockout 3.2 und das neue Komponentensystem. Ich versuche Komponenten zu haben, die Unterkomponenten enthalten.Knockout 3.2 Komponentendaten Kontext
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;
})();
Wie Sie die HomePageViewModel
enthält sowohl die NewsFeedViewModel
sehen können. Ich möchte jetzt in der Lage sein, diese als DataContext/BindingContext meiner beiden Komponenten zu verwenden, aber das scheint nicht zu funktionieren.
Home.html
<news-feed data-bind="newsFeedViewModel"></news-feed>
<news-feed data-bind="newsFeedViewModel2"></news-feed>
Beide Komponenten, die die Viewmodels nicht vom HomePageViewModel
verwenden, sondern verwendet eine neue NewsFeedViewModel
. Wie kann ich den Datenkontext dieser beiden Komponenten an die in der obersten Komponente (home) gespeicherten viewModels binden?
Vielen Dank für diese Lösung, werde ich es heute Abend versuchen, den Beitrag zu aktualisieren. – user2465083
Das funktioniert perfekt. Danke für die Hilfe :) – user2465083
Hallo nochmal, würdest du bitte einen Blick auf den folgenden Code werfen http://jsfiddle.net/fssXE/3/. Ich habe eine Funktion in dem ViewModel hinzugefügt und es an eine Funktion in dem ViewModel gebunden. An diesem Punkt, wenn ich versuche, auf Daten von dem ViewModel zuzugreifen, wird es immer undefiniert sein. Ich konnte nicht auf die Daten von Funktionen im ViewModel zugreifen. – user2465083