индекс ng-repeat не работает || вложенный по клику не работает

0

если мы создаем два или три комментария с несколькими ответами на них, то "полезная" ссылка вызывает проблему при щелчке, она выполняет операцию ng-click по индексу с таким же номером, тем самым отображая весь текст с тем же индексом. как разрешить это вложение, чтобы при щелчке ссылки показывался только соответствующий текст

http://plnkr.co/edit/XS4Nro3sdIWMnopdgDYG?p=preview

операции ng-click и ng-show работают через контроллер myDiscuss

var app = angular.module("myDiscuss", []);
app.controller("TabController", function($scope) {

  $scope.subTab = null;
  
  $scope.subLike=null;



  
  $scope.selectSubLike = function (setTab) {
      $scope.subLike=setTab;
  }
 
  $scope.selectSubTab = function(setTab){
    $scope.subTab = setTab;
  };
 
  $scope.isSelectedSub = function(checkTab){
    return $scope.subTab === checkTab;
  };

  $scope.isSelectedSubLike = function(checkTab){
    return $scope.subLike===checkTab;
  };

});

Для просмотра html файла в ссылке plunker.

Полезная и ответная ссылка находятся в файле reply-link.html

  • 0
    Итак, вы хотите создать ответ внутри ответа? Или вы имеете в виду, что, нажимая кнопку «Полезный ответ», вы не попадете в нужное место?
  • 0
    да, он не идет в нужное место для некоторых полезных ссылок, например: если мы нажмем «полезно», то он показывает весь текст с тем же индексом

2 ответа

2

Получите index1 также, чтобы вы могли получить окно ответа, на которое вы нажимаете кнопку ответа. Используйте selectSubTab (index, index1), а затем две переменные в $scope.subTab чтобы проверить, что выбрано.

Отредактировано: Konkko plnkr http://plnkr.co/edit/lbn57aPTJQpgzMaQPW6t?p=preview

ответ-box.html

<div  id ="wrapper">
  <form ng-submit="replysubmit()" ng-controller="BlockController">
    <div class="clearfix" ng-if="isSelectedSub(index)">

      <input type="textarea" tabindex="0"
      style="overflow: auto; max-height: 350px; margin-top:1px;" class ="col-sm-8 col-md-8 col-lg-11" ng-model="reply.comment"
      name="reply.comment" placeholder="Write a Reply" />
    </div>
    <blockquote  ng-repeat="(index1,object) in replybox">
      <h4>Name</h4>
      <p>
        {{object.comment}} {{index1+1}}
      </p>
      <p ng-if="object.helpful">{{ object.helpful }} </p>
      <ul reply-links></ul>
      <div class="clearfix" ng-if="isSelectedSub(index, index1)">

        <input type="textarea" tabindex="0"
        style="overflow: auto; max-height: 350px; margin-top:1px;" class ="col-sm-8 col-md-8 col-lg-11" ng-model="reply.comment"
        name="reply.comment" placeholder="test" />
      </div>
    </blockquote>
  </form>
</div>

ответ-links.html:

<ul class="nav nav-pills">
    <li>
      <a href ng-click="increaseHelpful(object)" class="glyphicon ">Helpful</a>
    </li>
    <li>
      <a href ng-click="selectSubTab(index, index1)" class="glyphicon" >Reply</a>
    </li>
</ul>

JS:

$scope.subTab = {first: null, second: null};

$scope.selectSubTab = function(setTab, setTab1){
    console.log(setTab);console.log(setTab1);
    $scope.subTab = {first: setTab, second: setTab1};
  };

$scope.isSelectedSub = function(checkTab, checkTab1){
    return $scope.subTab.first === checkTab && $scope.subTab.second === checkTab1;
  };
  • 0
    какая польза от ng-init = "reply.reply = object" ??
  • 0
    Ой, прости, что оставил это там. Сначала я подумал о создании объекта внутри ответа, который создает объект внутри объекта, что позволит вам выполнить итерацию, чтобы в случае необходимости было создано дерево ответов.
2

Вот Plunker: http://plnkr.co/edit/PQ36lMXR1YOs8DP7WXMk?p=preview

То, что я сделал, добавлено helpful: 0 для объектов комментариев и ответов. Также добавлен <p ng-if="object.helpful">{{ object.helpful }} </p> в comment-section.html и reply-box.html

Затем при нажатии на полезную добавлена новая функция под названием increaseHelpful(object) где вы увеличиваете полезную переменную по одному на каждом клике. Конечно, вам нужно сделать так, чтобы один пользователь мог только щелкнуть его один раз, но только, например, :)

  • 0
    имя функции - addHelpful или increment, так как функция addHelpful мне видна
  • 0
    извини да я имею ввиду увеличениеПолезно
Показать ещё 2 комментария

Ещё вопросы

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