Actualisation de la directive Angulaire
Je suis plutôt nouveau Angulaire, donc je ne sais pas si "l'actualisation de la directive" est rédigé correctement. Je suis en train de construire un questionnaire Angulaire et l'utilisation djds4rce angulaire de l'-socialshare pour afficher un bouton twitter.
edit: désolé pour le manque d'info plus tôt. Voici le code:
edit edit: Bon, de toute évidence, cela a à voir avec la angulaires-socialshare plugin OU le bouton twitter. Quand je fais cela pour le bouton twitter:
<a twitter data-text="{{score}}"></a>
Je vois dans mes outils de développement de Chrome qu'il affiche correctement le score de l'utilisateur. Cependant lorsque je clique sur le lien, tout d'un coup le texte est de retour à "0".
HTML
- Je obtenir une liste à partir d'une api. Chaque élément (je l'appelle le premier ministre) de la liste a à la fois un nom et un "corriger" l'attribut.
<button ng-click="validateClick(premier, $index)"
class="btn btn-default btn-game"
data-correct="@{{premier.correct}}"
ng-class="{'disabled btn-danger': premier.isPremier, 'disabled btn-success': premier.isRandom}"
ng-repeat="premier in premiers"
ng-disabled="gameOver"
ng-bind="premier.name">
Et j'affiche le score pour l'utilisateur:
<span class="score" ng-bind="score"> </span>/70
JAVASCRIPT
Dans mon Angulaire contrôleur, j'ai une variable appelée score
premierApp.controller('premierController', function ($scope, $http) {
$scope.score = 0;
//so if this correct value = "premier", Game Over! if it = "random", then the user gets a point
$scope.validateClick = function (premier, index) {
if (premier.correct == "premier") {
premier.isPremier = true;
$scope.gameOver = true;
$scope.stopGame();
} else {
premier.isRandom = true;
$scope.score++;
}
}
et je suis en utilisant une directive pour afficher un tweet bouton permet à l'utilisateur d'tweet son score:
directive:
premierApp.directive('tweetbutton', function() {
return {
templateUrl: 'html_templates/premiers_tweetbutton.html',
};
});
et la templateurl est-ce:
<a twitter
data-lang="en"
data-size="medium"
data-text="{{score}}">
</a>
Maintenant le texte (données de texte) du bouton twitter reste à "0" (la valeur standard lorsque j'ai déclaré la variable dans mon Contrôleur).
Comment puis-je mettre à jour la directive pour afficher le nouveau score que mon application est-elle calculée?
C'est parce que la bibliothèque ne supporte pas ce comportement. prendre un coup d'oeil au code. Regardez cette ligne: github.com/djds4rce/angular-socialshare/blob/master/..... aller de l'avant sur les questions de la bibliothèque.. github.com/djds4rce/angular-socialshare/issues/17.. Donc. Non, il ne prend pas en charge double liaison.
OriginalL'auteur Jelle Van de Vliet | 2015-01-22
Vous devez vous connecter pour publier un commentaire.
vous pourriez avoir besoin de le faire:
dans votre fonction de contrôleur, mais si je pouvais voir un plunkr ou encore du code qui pourrait être utile
faire un plunkr, permet de tout voir, j'aimerais savoir quel élément de votre directive est attaché. directives de "rafraîchir" automatiquement si la valeur de $champ d'application est modifié. encore une fois, faire une plunkr va aider, je ne sais pas comment tout est à la recherche pour vous.
Mise à JOUR
http://plnkr.co/edit/Y6LSXhOV1r8c4HQeDq0L?p=preview
Essayez ceci:
Votre directive:
Et dans la vue
quels éléments avez-vous "tweetbutton"? btw, il est commun dans les directives pour nom 'tweetButton" au lieu de cela, puis de référence dans la vue en tant que <div tweet bouton-> @JelleVandeVliet
mkay, je vais faire un plunkr pour vous... brb l'obtention d'un red bull et snickers
Salut Patrick, je l'ai appliquée à un div. J'ai édité mon OP une fois de plus, c'est la mise à jour de la partition. Mais quand je clique sur le bouton tweet, ça montre juste "0"
jetez un oeil à la directive en ce plunker, pouvez-vous donner un coup de cette avec votre code et voir si cela aide? Si non, il semble comme il pourrait être le problème @rahpuser est en train de parler au sujet de, vous devriez toujours être en mesure de travailler autour d'elle. plnkr.co/modifier/Y6LSXhOV1r8c4HQeDq0L?p=preview
OriginalL'auteur trickpatty
vous n'êtes pas de nous dire comment et où votre application calcule la nouvelle valeur.
angularjs fournit les deux sens de la liaison de données, donc si vous en programmant changement de dollars de votre portée.score = 1, il va magiquement "re-rendre" la nouvelle valeur.
puis dans votre contrôleur, vous pouvez avoir quelque chose comme
Donc, à votre avis si vous faites quelque chose comme
votre score doit commencer à changer.
Par la façon dont vous n'avez pas besoin d'une directive pour cela, vous pouvez simplement utiliser
à apporter vos partielle de votre point de vue
OriginalL'auteur Cosmin