ng-if условие не работает должным образом [AngularJS]

0

Когда я нажимаю ссылку на комментарий или ответ, форма открывается для всех карт. Как сделать в определенной области, чтобы форма открывалась только для ссылки на клик.

Функция ниже используется с ng-if в html, чтобы скрыть форму. После щелчка она должна открывать только соответствующую форму.

 $scope.increaseReply = function(object) {
   object.replyone += 1;
 };

Вот ссылка plukr

  • 1
    Ваша ошибка здесь в том, что вы привязываете один и тот же объект (_reply) ко всем экземплярам разделов комментариев. вместо этого попробуйте разные объекты с каждым, затем попробуйте.
  • 0
    Да, как сказал @JenishRabadiya, вы используете один и тот же объект _reply для каждого ng-if, либо создаете массив объектов, либо каждый раз создаете новый объект.
Теги:
angular-ng-if

1 ответ

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/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню