8
votes

Les vues de la colonne vertébrale incapable de prolonger l'utilisation de requisjs

Je suis familier avec la construction d'applications de sackbone, mais j'essaie de le convertir à l'utilisation requisjs, le problème que je suis confronté est lorsque j'essaie d'étendre la vue parent, c'est non défini code>

quand Essayer d'étendre la base-vue.js à Properties-View.js P>

    define(['backbone','underscore','jquery','views/node/properites-view'], function(Backbone, _, $, PropertiesView){
    NodeBaseView = Backbone.View.extend({
    ..
        new PropertiesView({});
    ..
    });

});


2 commentaires

Êtes-vous sûr que vous retournez la vue? Comme dans renvoie nodebaseview; à la fin.


possible c'était la solution. J'ai résolu cette erreur il y a plus de six mois et que vous n'êtes pas en mesure de m'embouer maintenant.


3 Réponses :


3
votes

Le problème ici semble être une dépendance circulaire. La vue de base nécessite une vue de propriétés et vice versa. Cela se traduit par l'un d'entre eux indéfinis.


8 commentaires

Je comprends que. Cependant, la version régulière de la backbone n'a pas ce problème et que l'extension des vues est l'une des caractéristiques. Aucune idée de comment je peux résoudre ce problème ici


Eh bien, pour être clair, sauf si j'ai totalement mal compris la question, le problème que vous rencontrez n'a rien à voir avec la colonne vertébrale. C'est plutôt avec la manière dont vous utilisez besoin. Les dépendances circulaires ne sont pas autorisées à AMD. (Quelqu'un me corrige si je me trompe.) Même si vous n'ayez pas besoin d'avoir besoin, cela me semble étrange qu'une vue parent dépendrait d'une vue enfant. Ne pas essayer de vous dire quel est le meilleur pour votre code, disant simplement que je pense qu'il y a des raisons valables une dépendance liber une libération de dépendance. Si c'était moi, je ferais de la question en utilisant simplement trois points de vue.


Sa vue enfant qui veut étendre la vue parent (non pas de vue parent étendue la vue enfant). Je me demandais si quelqu'un avait de l'expérience en utilisant une AMD avec une colonne vertébrale et une vue approfondie des parents à des vues d'enfants pour utiliser des méthodes de parents et une manipulation des événements.


@Gokulkav j'ai la même situation ici. Avez-vous réussi à le résoudre? Donc, je suis incapable d'instancier une vue enfant du parent? Sinon, comment puis-je obtenir le même comportement de le faire d'une manière différente?


C'est généralement une limitation avec le format AMD selon le commentaire de James Burke: Stackoverflow.com/Questtions/4881059/...


Mais généralement, vous faites toujours quelque chose de similaire lorsque vous travaillez avec BackBone.View ... Vous aurez des vues qui instancent d'autres vues et les deux vues auront une dépendance dorsale.


Je pense que Backbone de V1.0 offre un soutien natif à AMD et je suis maintenant capable d'étendre des vues sur les enfants sans aucun problème. Veuillez commenter si vous avez le problème même si vous utilisez> v1.0 ou d'autre, je fermera la question.


La colonne vertébrale 1.0 n'a aucune sorte de support AMD natif.


1
votes

Vous pouvez avoir besoin de propriétésView de manière dynamique de manière dynamique afin de ne pas avoir à dépendre de celui-ci.

define(['views/node/base-view', 'views/node/properites-view'],
    function(NodeBaseView, PropertiesView){
        return {
            base: new NodeBaseView()
        }
});


0 commentaires