2017-07-17 2 views
0

Quelle est la manière correcte de connecter un bs-button à l'intérieur d'un bs-form à une action de composant?Connexion de boutons bs dans un formulaire bs aux actions de composant (ember-bootstrap)


quelques informations sur ce que je veux faire et ont déjà essayé:

Je suis en train de mettre à niveau Ember 2,10 à 2,14 et Ember-bootstrap de 0.11.3 à 1,0. J'ai rencontré un problème avec ember-bootstrap.

J'ai deux boutons dans un formulaire (bs-form): "Enregistrer" et "Annuler". Le formulaire est hébergé dans un composant Ember. Dans l'ancienne version que je viens d'avoir deux bs-button éléments, comme celui-ci:

{{bs-button defaultText="Save" type="primary" action="save"}} 
{{bs-button defaultText="Cancel" type="primary" action="cancel"}} 

Dans la classe de composant, je défini l'action correspondante:

actions: { 
    save() { /* do saving stuff */ } 
    cancel() { /* do cancelling stuff */ } 
} 

Maintenant, ce ne fonctionne plus: bs-button utilise onClick au lieu de action maintenant, mais simplement ajouter onClick="save" ne fonctionne pas (je reçois TypeError: action is not a function); aussi, onClick=(action "save") ne fonctionne pas (Assertion Failed: An action named 'save' was not found in (generated edit-organization controller)).

Cependant, lorsqu'ils ne sont pas en utilisant bs-button mais un élément button normale en conjonction avec l'aide action, il fonctionne très bien:

<button class="btn btn-default" {{action 'cancel'}}>Cancel</button> 
<button class="btn btn-primary" {{action 'save'}}>Save</button> 

Je soupçonne que le problème est lié à l'utilisation d'un composant pour accueillir la forme ; après tout, les documents ember-bootstrap indiquent que les actions sont utilisées pour ...

envoyer une action à votre contrôleur.

Toujours je voudrais utiliser un composant (après tout, les contrôleurs disparaissent, non?). Toute aide à ce sujet est appréciée.

Répondre

0

Vous pouvez créer une action de fermeture et de le transmettre au composant bs-bouton.

{{bs-button defaultText="Save" type="primary" save=(action "save")}} 
{{bs-button defaultText="Cancel" type="primary" cancel=(action "cancel")}} 

A l'intérieur du composant,

<button class="btn btn-default" {{action cancel}}>Cancel</button> 
<button class="btn btn-primary" {{action save}}>Save</button> 
+0

Si je comprends bien, votre explication est sur la façon de fixer le composant bs-bouton. Mais le bouton bs n'est pas mon composant, mais il fait partie de l'addon ember-bootstrap; donc ce que je cherche est comment utiliser correctement cet addon, pas comment écrire la fonctionnalité moi-même. –

+0

Oh désolé. Maintenant, j'ai compris votre problème. Je crois que vous devez définir l'action est contrôleur, c'est le changement de rupture introduit dans [versions alpha 1.0.0] (https://github.com/kaliber5/ember-bootstrap/blob/master/CHANGELOG.md#100-alpha3- 2017-01-21). Pour adhérer au principe DDAU. Je n'ai pas utilisé ça. vous pouvez le confirmer à partir de l'auteur @simonihmig qui sera actif dans la communauté de Slack 0ember – kumkanillam

+0

Ok, je vais essayer! –