проверять всех родителей при выборе узла в angular-ivh-treeview

0

Я хочу использовать угловое-ivh-treeviewHow. этот образец, который я хочу использовать. но у этого образца есть проблема для меня, и именно когда я выбираю узел, не выбранный всем родителем. Как это исправить?

  • 0
    Вы имеете в виду, когда вы выбираете родительский узел, он не выбирает все дочерние узлы?
  • 0
    @Yottatron Йоттатрон нет. когда я выбираю узел все родительские checkd.
Показать ещё 2 комментария
Теги:
treeview

1 ответ

3
Лучший ответ

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

Вот пример первого решения: http://jsbin.com/cegipa/6/edit?html,js,output

Обратите внимание, что при нажатии дочернего узла его родители обновляются в соответствии с его новым состоянием. Это достигается с помощью следующего шаблона:

<span ivh-treeview-twistie></span>
</span>
<input type="checkbox" select-parents ng-model="node.selected">
<span class="ivh-treeview-node-label" ivh-treeview-toggle>
  {{trvw.label(node)}}
</span>
<div ivh-treeview-children></div>

С этой директивой, прикрепленной к флажку:

app.directive('selectParents', function(ivhTreeviewBfs) {
  return {
    link: function(scope, element, attrs) {
      element.on('click', function() {
        var n = scope.node;
        ivhTreeviewBfs(stuff, function(node, parents) {
          if(n === node) {
            angular.forEach(parents, function(p) {
              p.selected = n.selected;
            });
            return false;
          }
        });
        scope.$apply();
      });
    }
  };
});

И вы могли бы сделать что-то подобное (и, возможно, более эффективно), передавая события вокруг.

Ещё вопросы

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