Cereal Killer
Cereal Killer

Reputation: 3414

Add and remove views

I would like to insert in the DOM a view that displays a form with 2 buttons: + and -; when you click "+" another identical view is inserted, when you press "-" the current view is removed;

I've tried to create a container view and the function for adding a view is simple: in the template:

{{view Ember.ContainerView elementId="containerView"}}

in the childView's template:

<button class="form-button" {{action "addProduct"}}>+</button>

in the route's controller:

 addProduct: function() {
        var container = Ember.View.views['containerView']; 
        var child = container.createChildView(Gmcontrolpanel.InserisciProdottoView);
        container.pushObject(child);

    }

But i'm not able to manage the "-" function; because for that i need to get the view that the button i'm clicking belongs to in order to remove it, and i don't know how to do this; All the childviews can have a controller? Because from the childview's button i can only call actions from the route's controller;

Or there is a better way to get this work?

Upvotes: 0

Views: 114

Answers (1)

thecodejack
thecodejack

Reputation: 13379

so in that case, have an action in the childview rather controller like this

<button class="form-button" {{action "deleteProduct" target="view"}}>-</button>

in the views actions handle the deleteProduct like this

deleteProduct: function() {
   this.destroy();
}

If you want to handle any of the model part then send an event from above method to controller

Upvotes: 2

Related Questions