Question

J'ai un modèle qui crée un composant pour chaque enregistrement qu'il a dans le modèle.Je souhaite trouver un composant et mettre à jour l'une de ses biens à l'exécution en fonction d'un événement d'un autre modèle.Comment trouver un composant particulier inséré dans le DOM. {{#chaque}} {{mon nom}} {{/chaque}}

<script type="text/x-handlebars" data-template-name="components/my-name">
Hi, my name is {{name}}.
</script>

var App = Ember.Application.create();
App.IndexRoute=Ember.Route.extend({
model:function(){
 return dummyNames;
} 
});
var dummyName={[name='John', name='Jane', name='Jade']};

Ce code afficherait les noms à l'écran.Maintenant, j'ai un autre modèle appelé changement.

<script type="text/x-handlebars" data-template-name="change">
<button {{action 'changeNow'}}></button>
</script>

App.ChangeController=Ember.Controller.extend({
    actions:{
        changeNow:function(){
           //Here I want to find the component where the name is Jane and change it to Kate. How         to do this?
        }
    }
});

Était-ce utile?

La solution

Voici un JSBIN que j'ai préparé pour vous.

http://emberj.jsbin.com/sanukoro/3/edit < / p>

Composant a sa propre portée. et si les {{nom}}} sont affichés dans votre composant que je suppose que vous avez rendu dans le modèle d'index. Cela signifie que vous avez passé cette propriété à la composante. quelque chose comme ça de Guide

{{blog-post title=name}}

Propriétés de passage aux composants

SO BASYALAY La propriété que vous souhaitez modifier est d'IndexController.

Vous pouvez modifier directement la propriété IndexController (nominatifs) et le changement sera reflété dans votre composant en raison des liaisons de données.

Puisque vous voulez le faire en Al ensemble, un contrôleur différent, vous devrez déclarer dépendance à l'index de l'indextroller dans ChangeController. Gestion des dépendances

App.ChangeController=Ember.Controller.extend({
    needs: ['index'] //dependency
    names: Ember.computed.alias("controllers.content") //now get properties of Index controller
    actions:{
        changeNow:function(){
          //here you can find name jane and replace it with to kate

        }
    }
});

Vous devrez peut-être consulter AddarrayObserver pour suivre de près les modifications.

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