2012-11-03 5 views
3

J'essaie d'obtenir l'ID d'enregistrement de l'ensemble d'objets sous-jacent sur l'objet vue, afin que je puisse le définir sur le wrapper HTML de la vue. Voici ce que je suis en train:Comment accéder au contexte dans un Ember.View?

// Row in record editing table view. 
views.RecordActionTableRowView = Ember.View.extend({ 
    // Does not work. 
    attributeBindings: ['record_id:data-record-id'], 
    templateName: 'pult-record-action-table-row', 

    init: function() { 
    console.log(this); 
    // Does not work either. Undefined. 
    console.log(this.get('record_id')); 
    // Does not work either. Undefined. 
    console.log(this.record); 
    return this._super(); 
    } 
}); 

Ce point de vue est appelé à partir d'un modèle, de sorte que son propre modèle contient les bonnes données, mais je ne peux pas le trouver à l'intérieur du code de la vue. Aucune suggestion?

+1

Pouvez-vous fournir un jsFiddle indiquant votre problème? D'après le code affiché, il semble impossible de savoir ce qui se passe. À quoi ressemble votre modèle? Comment l'ensemble est-il défini? Vous pouvez l'utiliser comme point de départ: http://jsfiddle.net/pangratz666/DvdVH/ – pangratz

+0

Eh bien, l'exemple exact n'est guère pertinent ici. J'essaie juste de comprendre s'il existe un moyen général d'accéder au contexte du modèle depuis une vue. Il n'y a rien dans la documentation à ce sujet. Il y a supposément un attribut de contexte sur la vue, mais c'est aussi indéfini. – mikl

+0

pouvez-vous d'abord appeler _super(), puis le journal des choses? –

Répondre

3

Vous voulez probablement this.get('context') ou this.get('content'). Dans certaines circonstances, la vérification dans didInsertElement peut être meilleure que dans init, dans le cas où la vue est créée avant context est définie.

0

Je justfaced même question en essayant d'accéder à ce qui est décrit dans la documentation comme templateVariables dans mon cas, les éléments suivants ont travaillé

this.get("templateData.keywords.myvarname") 
+0

Ceci n'est pas une API publique et devrait être évitée. –

+0

Je suis entièrement d'accord avec vous @LukeMelia mais ce qui est en public Api ne semble pas fonctionner ... [doc] (http://emberjs.com/guides/understanding-ember/the-view-layer/#toc_accessing-template-variables -de-vues) – MrVinz

Questions connexes