Question

une nouvelle question: J'ai téléchargé le passe-partout standard sur https://github.com/david0178418/BackboneJS-AMD-Boilerplate il utilise require.js et je m'interroge sur la navigation dans le code lors du développement.

Voici ma question: disons que j'ai 2 vues l'une étendant l'autre comme ceci:

Vue 1:

define([
    'underscoreLoader',
    'backboneLoader',
    'text!templates/main.html'
],
    function (_, Backbone, MainTemplate) {
        "use strict";

        return Backbone.View.extend({
            template:_.template(MainTemplate),

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

            log:function(msg){
                console.log(msg);
            },

            render:function () {
                this.$el.append(this.template({}));
                return this;
            }
        });
    }
);

Vue 2:

define([
    'underscoreLoader',
    'backboneLoader',
    'text!templates/other.html',
    'views/main-view'
],
    function (_, Backbone, MainTemplate,MainView) {
        "use strict";

        // how would you navigate to MainView (main-view.js) 

        return MainView.extend({
            template:_.template(MainTemplate),

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

            render:function () {
                this.log("my message");
                this.$el.append(this.template({}));
                return this;
            }
        });
    }
);

Maintenant, lorsque je développe (j'utilise IntelliJ), je voudrais faire un clic central sur MainView sur la vue étendue et accéder au code sans avoir à parcourir l'arborescence du projet.

Est-ce possible en utilisant ce passe-partout?Y a-t-il une meilleure approche ou un meilleur passe-partout?

Était-ce utile?

La solution 2

J'ai trouvé que cela fonctionnait bien pour moi: les objets Backbone sont enveloppés avec mes objets personnalisés, ce qui me permet de naviguer dans le code, d'étendre les objets et de conserver facilement plusieurs fichiers.

Voici comment:

Objet 1

function ItemModel() {
    ItemModel.model = (
        Backbone.Model.extend({
            initialize:function () {

            },
            defaults:{
                name:"item name"
            },
            log:function(){
                console.log("inherited method");
            }
        })
        );
    return new ItemModel.model();
}

Objet 2

function ItemModel2() {
    ItemModel2.model = (
        ItemModel.model.extend({
            initialize:function () {

            },
            defaults:{
                name:"item name2"
            }
        })
        );
    return new ItemModel2.model();
}

et dans mon application:

var App = {
    item:new ItemModel(),
    item2:new ItemModel2()
};

Autres conseils

J'aimerais vraiment que le navigateur de Netbeans me montre toutes les méthodes:

var New_Controller = Backbone.View.extend({
    el : null, ...
}

Mais je n'arrive pas à le faire fonctionner.Google a proposé quelque chose pour @lends, mais je ne parviens même pas à charger Backbone.js dans le cache d'indices de code.

J'ai fini par installer WebStorm (j'ai vu l'EDI dans tous les tutoriels egghead.io) pour que le navigateur répertorie toutes les méthodes et propriétés.

Pour info, Aptana Studio et Zend Studio n'ont rien montré de comparable à Netbeans.Et Eclipse IDE pour les développeurs Web JavaScript ne fonctionne que partiellement (peu pratique dans la vraie vie);il aplatit toute la hiérarchie.

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