Когда я нажимаю ссылку на комментарий или ответ, форма открывается для всех карт. Как сделать в определенной области, чтобы форма открывалась только для ссылки на клик.
Функция ниже используется с ng-if в html, чтобы скрыть форму. После щелчка она должна открывать только соответствующую форму.
$scope.increaseReply = function(object) {
object.replyone += 1;
};
Вы должны назначить бит replyActive для каждого комментария. Для этого вы можете использовать объекты итерации (я предположил, что вы используете ng-repeat). Вы можете добавить еще одно свойство в свой объект в интерактивном режиме и использовать его свободно.
Простой пример;
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.commentList = [
{
"author": "Tugca Eker",
"comment": "You should check this example..."
},
{
"author": "Gagan",
"comment": "ng-if not working"
},
{
"author": "Tugca Eker",
"comment": "Check it again"
}
];
}
ul li{
padding: 5px;
border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
<ul>
<li ng-repeat="comment in commentList" ng-init="comment.isReplyActive = false;">
<b>{{comment.author}}</b>: {{comment.comment}}
<br />
<a ng-click="comment.isReplyActive = !comment.isReplyActive;">Reply Now!</a>
<div ng-if="comment.isReplyActive">
<input type="text">
</div>
</li>
</ul>
</div>
Сниппет на Stackoverflow терпит неудачу, я не знаю почему. Проверьте эту скрипту, http://jsfiddle.net/Lvc0u55v/7762/