Backbone: comment réutiliser une vue rendue lors de chargement de la page

StackOverflow https://stackoverflow.com/questions/7802791

  •  25-10-2019
  •  | 
  •  

Question

Je suis en train de créer un gestionnaire d'URL où l'utilisateur peut mettre en signet ses URL de page Web préférées et de les gérer dans des dossiers.

  1. Pendant la charge de l'application, je rends une vue qui montre la liste des utilisateurs de dossiers a créé. ce point de vue est invisible sur la charge de la page.
  2. utilisateur navigue alors à sa page d'accueil pour afficher une liste des urls
  3. à partir de là, l'utilisateur peut arranger les urls dans les dossiers
  4. l'utilisateur clique sur l'icône « Déplacer vers un dossier » en vue URL
  5. Je veux afficher la folderSelectorView absolue positionné en dessous du « Déplacer vers un dossier » icône. Comment puis-je faire?
  6. Aussi, si l'URL a déjà été déplacé dans un dossier, je veux un signe vérifié apparaisse dans le folderSelectorView dans le dossier où l'URL a été déplacé.

Comment dois-je procéder ici?

Voici comment je charge la liste des dossiers.

var folderColl = new FolderColl();
new FolderSelectorView({collection: folderColl});

Voici le code pour une vue URL.

URLView = Backbone.View.extend({
    tagName: 'li',
    template: _.template($('#URLTempalte').html()),
    events: {
        'click .FolderChange': 'showFolderSelector'
    },

    initialize: function() {
        _.bindAll(this, 'render');
    },

    render: function() {
        return $(this.el).html(this.template(this.model.toJSON()));
    },

    showFolderSelector: function() {
       // How should I display the view here
       // view should display below the "Move to folder" icon
       // Doing something like `new FolderSelectorView` is not what I'm after
       // since that will just re-render the view for every URL displayed
    }
});
Était-ce utile?

La solution

Vous pouvez joindre une vue épine dorsale à un élément HTML existant, facilement. tout ce que vous devez faire est de passer le el pour la vue, dans la vue lorsque vous instanciation. le el peut être tout ce que vous voulez -. comprenant un élément HTML existant, trouvé par un sélecteur de jQuery

var myEl = $("#someElementOnThePage");
var myView = new MyView({
  el: myEl
});

Cela ajoutera votre point de vue à l'élément #someElementOnThePage, et vous pouvez alors l'utiliser comme si vous aviez vous-même rendu.

Pour plus d'exemples, voir mon blog sur l'élaboration progressive: http://lostechies.com/derickbailey/2011/09/26/seo-and-accessibility-with-html5-pushstate-part-2 -Progressive-enrichissement à-squelette-js /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top