Angulaire modifiable déroulant - rendre modifiable basée sur la valeur sélectionnée
Mise à JOUR 1: développé le premier exemple de code à la base de la correcte mise en œuvre.
Mise à JOUR 2: développé un modèle de travail. Voir les réponses.
J'ai trouvé cette bibliothèque:
https://libraries.io/bower/editable-dropdown-angularjs
qui permet l'ajout de liste déroulante modifiable à l'aide de HTML5 datalist fonctionnalité.
Il fonctionne très bien, cependant, le seul besoin est de rendre le champ modifiable uniquement si la valeur sélectionnée est "Autre".
Voir l'échantillon de travail dans plunkr.co vreated basé sur la démo de la référentiel
http://plnkr.co/edit/wDm2mbTqTsT1YC5H7UPy?p=preview
Voir l'exemple de code ci-dessous pour plus de détails.
Apprécions vos suggestions à faire la liste déroulante modifiable uniquement si la valeur sélectionnée est "Autre".
HTML5:
<div ng-app="myApp">
<div ng-controller="demo" style="width:300px;position:fixed;top:20px;left:20px">
<p>You selected {{selected}}</p>
<editable-dropdown options='list' ng-model='selected'></editable-dropdown>
</div>
</div>
JavaScript:
angular.module('myApp', ['editableDropdown'])
.controller('demo', function($scope){
$scope.list = ['one', 'two', 'other']
$scope.selected;
});
J'ai pu développer cet exemple de code à l'aide de jsfiddle (en fonction de cette réponse):
http://jsfiddle.net/tarekahf/t392djx1/
Qui va permettre de faire la liste déroulante modifiable si "Autre" est sélectionné. Maintenant, je suis la conversion de ce mode à l'angle moyen. Si vous avez des suggestions, s'il vous plaît laissez-moi savoir.
- En regardant la source il n'y a pas d'option pour le faire. Vous pouvez décorer la directive, mais peut-être que vous êtes mieux d'écrire votre propre fonction de la source?
- J'ai mis à jour la description. Je crois que j'ai trouvé un moyen.
Vous devez vous connecter pour publier un commentaire.
Semble que vous n'êtes pas attirer trop d'attention à votre question et comme je l'ai commenté, vous feriez (encore) mieux d'écrire votre propre mise en œuvre, plutôt que d'essayer de forcer
editable-dropdown-angular
à vos besoins.De toute façon, j'ai pris la liberté d'écrire ma propre
editable-select
directive pour vous.Directive tableau de
options
au choix et en optionother
chaîne de caractères, qui est la valeur par défaut modifiable par l'utilisateur sélection. L'édition est désactivée lors du choix deoptions
, tandis queother
peut être librement modifiée.Espère que vous le trouverez utile.
Application du modèle HTML
Application JavaScript
Directive modèle HTML (editable-select-tpl.html)
CSS
Liées plunker ici https://plnkr.co/edit/7bVgDW
value
et optiontext
même comme la norme de la liste déroulante. Je pense que je sais comment faire pour ajouter cette fonctionnalité à votre solution.Voici ma solution. Ceci est basé sur un autre post, mais je ne me souviens plus de la source. Merci à tous ceux qui ont aidé.
Juste ajouter l'attribut
editable-dropdown
contre laselect
élément. La valeur de l'attribut doit être l'ID de lainput
élément.Style:
HTML:
JavaScript:
scope
si vous le pouvez. Si vous utilisez$
dans n'importe quelle partie de votre angulaire de l'application, vous avez besoin de refactoriser.