Modification dynamique du contenu avec la directive AngularJS, l'usine et ng-repeat

super doux

Je travaille sur un widget qui changera dynamiquement son contenu chaque fois que je clique sur un bouton correspondant. J'ai passé une tonne d'heures à comprendre cela mais je ne pouvais pas.

J'ai stocké toutes les données fournies avec l'usine angulaire. Ce que j'aimerais réaliser, c'est que chaque fois que je clique sur un bouton, il déclenche un événement pour saisir une autre propriété, qui est également un autre ensemble de données, dans les données d'usine. Et ceux-ci seront affichés dans la zone de contenu avec ng-repeat.

Je vais joindre mon exemple de code ci-dessous pour votre information. Veuillez laisser tout conseil ou tout concept qui m'aidera à comprendre et à mieux comprendre cela. Merci pour votre temps!

//index.html
<div directive>
 <div class='buttons'>
   <p>Button A</p>
   <p>Button B</p>
   <p>Button C</p>
 </div>
 <div>
  <a ng-repeat='a in data'>{{a.title}} {{a.author}}</a>
 </div>
</div>
//app.js
app.directive('directive', ['factoryData', function(factoryData) {
 return {
  restrict: 'A',
  link: function ($scope, ele, attrs) {
   $scope.data = factoryData.firstProp;
   var btns = $(ele).find('p');
   p.on('click', function () {
    $scope.data = factoryData.secondProp;
    ...
    ...
   });
  },
 };
}]);
ngCoder

Vous devez utiliser $applydans votre directive lorsque vous essayez de lier les nouvelles données à la portée hors du contexte angulaire.

app.directive('directive', ['factoryData', function(factoryData) {
 return {
  restrict: 'A',
  link: function ($scope, ele, attrs) {
   $scope.data = factoryData.firstProp;
   var btns = $(ele).find('p');
   p.on('click', function () {
    $scope.$apply(function() { // use $apply to set the data..in scope
    $scope.data = factoryData.secondProp;
     });
    ...
    ...
   });
  },
 };
}]);

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

AngularJS: ng-repeat avec liste dynamique, sans reconstruire l'arborescence DOM entière?

Directive isoler la portée avec la portée ng-repeat dans AngularJS

Directive AngularJs avec contrôleur dynamique et modèle

Modification de la taille du parent de la directive AngularJS

Test du contenu de la page dynamique angulaire (ng-if) avec Geb

AngularJS: Directive mettant à jour la portée parent à l'intérieur de ng-repeat

Comment copier à l'aide de clipboard.js avec du contenu dynamique et des déclencheurs

Enregistrer la mise en page AvalonDock avec du contenu dynamique

Comment créer du contenu dynamique (variable) avec angularjs?

Modification du contenu d'une ligne avec re et recherche

Ajouter du contenu dynamique avec des éléments d'URL

La directive Collapsable personnalisée angulaire échoue lorsqu'elle est enveloppée autour du contenu ng-repeat

angularjs et barre de boutons dynamique avec ng-repeat

Contenu de la directive dynamique AngularJS

Chargement de la directive (templateUrls dynamique) dans ng-repeat

filtre dynamique avec contenu dynamique Angularjs

angularjs ng-repeat avec json / object dynamique

Comment charger le contenu de la directive dynamique à l'aide d'AngularJS?

Ng-repeat et directive développent un élément de liste à la fois

Modification dynamique du contenu des données du popover à l'aide de Jquery / Javascript

Modification du modèle ng pour l'entrée dans ng-repeat en fonction du contenu

Contenu du formulaire dynamique Angularjs

Commander des données avec un filtre personnalisé à l'intérieur de la directive ng-repeat dans AngularJS

Angularjs - Obtenir le $ index du premier ng-repeat et l'utiliser pour le deuxième ng-repeat

Luttant avec l'usine de fonction et la fermeture

Problèmes de communication entre la directive et le contrôleur avec ng-repeat

Directive AngularJS avec isolat scope, ng-repeat et controllerAs

la modification du contenu HTML de l'élément avec du texte dégradé ne s'affiche pas dans Chrome

Comment créer la hauteur et la largeur du panneau d'amorçage avec un contenu dynamique

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  4. 4

    Comment envoyer plusieurs variables de la lame au contrôleur

  5. 5

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  6. 6

    Microsoft.WebApplication.targets

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  9. 9

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  10. 10

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  11. 11

    Concaténer des variables dans ansible

  12. 12

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  13. 13

    Filtrer les données en fonction des conditions d'une trame de données

  14. 14

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  15. 15

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  16. 16

    comment afficher un bouton au-dessus d'un autre élément ?

  17. 17

    php ajouter et fusionner des données de deux tables

  18. 18

    Stop jQuery execution after one time execution

  19. 19

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  20. 20

    obtenir le nombre de marqueur affiché sur la carte

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive