AngularJS ngRepeat modèle de mise à jour
- Je utiliser ng-repeat
de rendre un html table
. Mon contrôleur ressemble à ceci:
app.controller("fooCtrl", function($scope, WebSocket) {
$scope.foo = [ ... ];
WebSocket.start(function(data) {
//this is a callback on websocket.onmessage
//here is a for loop iterating through $scope.foo objects and updating them
});
});
Comme vous pouvez le voir, je suis la mise à jour de la $scope.foo
tableau périodique. Cependant, mon point de vue est construit comme suit:
<tr ng-repeat="item in foo">
...
</tr>
Le problème c'est que quand je l'ai mise à jour foo
, il n'a pas re-rendre ma table avec de nouvelles données.
Comment pourrais-je aller sur ce problème?
Salut, avez-vous le savez peut-être comment faire pour ajouter un élément au sommet d'une ng-repeat liste? Je peux mettre à jour ma liste - le nouvel élément est rendu, mais il va vers le bas de la liste.
OriginalL'auteur if __name__ is None | 2013-12-15
Vous devez vous connecter pour publier un commentaire.
Avez-vous envelopper la mise à jour dans
? Ceci devrait résoudre le problème.
OriginalL'auteur lex82
Vous avez probablement besoin d'appeler
$apply()
à force angulaire de faire un condensé de cycle lorsque vous mettez à jour la liste, comme:Uncaught TypeError: Object #<Scope> has no method 'apply'
s'il vous plaît, consultez cet article avec description: jimhoskins.com/2012/12/17/angularjs-and-apply.html
C'est '$postuler", pas "appliquer".
merci, mon mauvais!
OriginalL'auteur Maxim Shoustin
Suivants du code du travail pour moi, Chaque fois que vous recevez un message de prise vous suffit de lier votre code à l'intérieur de $scope.$appliquer() fonction
OriginalL'auteur Sachin Nikumbh