Hello à tous,
Je suis encore novice en AngularJS et je viens de finir la formation de Grafikart. Une fois mon système de commentaires à peu près fini, et pour que tout soit bien propre, j'ai voulu modifier mon code afin d'afficher "commentaires" au pluriel s'il y en avait plus d'un, et au singulier sinon :
Mon controller comments.js :
app.controller('CommentsController', ['$scope', 'PostFactory', '$routeParams',
function CommentsController($scope, PostFactory, $routeParams){
$scope.loading = true;
$scope.newComment= {};
var post = PostFactory.get($routeParams.id).then(function(post){
$scope.loading = false;
$scope.title = post.name;
$scope.comments = post.comments;
if (post.comments.length > 1){
post.txtcomment = "commentaires";
}else {
post.txtcomment = "commentaire";
}
}, function(msg){
alert(msg);
});
$scope.addComment = function(){
this.comments.push($scope.newComment);
this.newComment= {};
};
}]);
L'HTML :
<div ng-controller='PostsController'>
<div ng-show="loading">Chargement...</div>
<div ng-repeat="post in posts">
<h1>{{post.name}}</h1>
<p>{{post.content}}</p>
<a href="#/comments/{{post.id}}"><h2>{{post.comments.length}} {{post.txtcomment}}</h2></a>
<hr>
</div>
</div>
Mon code fonctionne, mais de façon un tant soit peu... Etrange. En fait, le {{post.txtcomment}} que j'ajoute à mon objet ne s'affiche que si je clique sur le lien et que je reviens ensuite à ma home page, comme ceci :.
Quelqu'un saurait-il pourquoi ?
Je me dis que ça doit avoir un rapport avec le $scope dans lequel je suis, mais je n'en sais pas plus.
Merci pour vos réponses !
bonjour, il y a déjà un système de fait par angularjs.
regarde du côté de ngPluralize.