Comment passer des données (élément sélectionné) à Durandal, composé de la vue de détail?

J'ai commencé à utiliser (comme d', il y a quelques heures) Durandal avec l'espoir de gérer les points de vue et permettre la composition dans une page unique - l'approche précédente, également à l'aide de knock-out, était devenu trop lourd à maintenir dans un gros fichier HTML.

J'ai installé/installation de Durandal et je peux créer des vues et des viewmodels - cependant, je ne sais pas comment obtenir les données en le viewmodel pour l'utiliser comme un base pour la nouvelle viewmodel.

Par exemple, j'ai une "gauche de la barre de navigation" pour sélectionner les éléments - lorsqu'un élément est sélectionné, il met à jour un "élément sélectionné" observables dans le modèle actuel, mais il devrait aussi charge de la bonne "vue détaillée" dans le droit: parce qu'une partie de la raison pour essayer de Durandal pour séparer les composants/points de vue, cela devrait venir à partir d'une autre vue/viewmodel.

Que j'ai lu dans la documentation, y compris la Composition et À L'Aide De La Composition, mais la méthode de comment transmettre des données à la viewmodel est pas clair pour moi. Il semble que je pourrais utiliser une vue avec un modèle existant (dans le courant de la vue/champ d'application), mais j'aimerais vraiment simplement utiliser certains de l'actuel modèle de données (c'est à dire une pièce d'identité) pour aller chercher le "vrai" modèle de données dans la vue.

Donc, mes questions;

  • Comment passer des données initiales, telles que la "élément sélectionné", à un viewmodel manipulés? Je préfère utiliser le déclaratif "composer:" la liaison, qui est ce qui rend KO .. KO.
  • Est cette notion de devoir et la transmission des données initiales, la façon correcte ici, ou est-il une meilleure alternative? J'ai vu "activeItem" vaguement mentionné, mais les détails/useage aludes moi.

Mise à jour 1: j'ai trouvé Comment pouvons-nous partager les données entre les points de vue et de lui Transmettre les données d'une vue à l', mais les réponses sont insuffisants dans la mise en œuvre effective. J'aimerais vraiment ne pas partager le viewmodel entre parent-enfant (vue distincte/viewmodel paires) et je voudrais utiliser une approche déclarative (pas d'événements). Le parent n'a pas besoin de savoir à propos de l'enfant, mais l'enfant doit être nourri de données de la société mère.


Mise à jour 2: si j'ai fait allusion ci-dessus, seul le "id" est nécessaire, je voudrais une approche qui fonctionne avec tout base de l'objet, qui le routeur n'est pas nécessairement approprié pour. Deep linking n'est pas un problème dans ce cas. Cependant, si vous vous sentez le routeur est la façon à l'approche de ce, de poster un argument en faveur de tel (avec détails) comme une réponse et je vais lui donner au moins un vote ..

OriginalL'auteur | 2013-03-10