Сначала вам нужно добавить numLimit
к каждому сообщению, а не к области.Вы можете сделать это в PHP, когда вы выбираете сообщения, или вы можете сделать это в вашем контроллере в вашей функции успеха.Поскольку вы используете $scope
для каждого сообщения, все, что вы делаете с $scope.numLimit
, будет делать это для всех сообщений.Добавив numLimit
к каждому сообщению в javascript или php, вы можете обновить функции html и readMore()
и readLess()
.
В html мы переключим limitTo
на использованиезначение post.numLimit
, а затем передать сообщение в функции readMore
и readLess
.
.html
<!-- most code left out for brevity -->
<div class="post" ng-repeat='post in posts'>
<h1>{{ post.title }}</h1>
{{ post.id }}<br>
{{ post.content | limitTo:post.numLimit }}
<div class="post-text">
<button type='button' ng-click="readMore(post)">read more</button>
<button type='button' ng-click="readLess(post)">read less</button>
</div>
</div>
В javascript мыпереключит две функции для обновления numLimit
сообщения, а не scope
.Мы также инициализируем каждый пост с более низким numLimit
.
.js
// read more or less text starts here
//$scope.numLimit = 200; - can remove this
$scope.readMore = function(post) {
post.numLimit = 10000;
};
$scope.readLess = function(post) {
post.numLimit = 200;
};
// read more or less text ends here
// Fetch post data
$scope.getPosts = function() {
$http({
method: 'post',
url: 'likeunlike.php',
data: {
request: 1
}
}).then(function successCallback(response) {
$scope.posts = response.data;
// this will initialize all posts to the lower numLimit
angular.forEach($scope.posts, function(post){
post.numLimit = 200;
})
});
}
$scope.getPosts(); // Fetch post data