Ionic`onHold`와 Angularjs`ng-click`을 결합하여 요소 선택

모르테 자 코르 반

내 현재의 ionic App에는 Telegram 에서 채팅 선택 형식으로 정확하게 선택하려는 상자가 있습니다 . 즉, 다음을 의미합니다.

1. 처음에는 ionic에서 OnHold 제스처로 선택 상자를 시작 합니다 . 이것은 올바르게 작동합니다 .

2. 그 후 각각을 클릭 하여 상자를 선택하거나 선택 취소하고 싶습니다. 작동하지 않습니다.

JSFiddle이 있습니다.

HTML

<ion-content>
  <div class="box" select-box>box 1</div>
  <div class="box" select-box>box 2</div>
  <div class="box" select-box>box 3</div>
</ion-content>

JS

var app = angular.module('app', ['ionic']);
app.directive("selectBox", ["$ionicGesture", "$rootScope",
  function($ionicGesture, $rootScope) {
    return {
      scope: {},
      restrict: "A",
      link: function(scope, elem, attrs) {

          // onHold => start select box by `onHold` => working good
          $ionicGesture.on('hold', function() {
            elem.addClass("selected");
            $rootScope.startSelect = true; // to enable select box by click
          }, elem);

          // after start select box in `onHold` gesture => 
          // select box by click => not working
          if ($rootScope.startSelect) {
            elem.on("click", function() {
              if (elem.hasClass('selected')) {
                elem.removeClass("selected");
              } else {
                elem.addClass("selected");
              }
            });
          }

        } // link function

    } // return
  }
]); // directive

app.controller('MainCtrl', ["$scope", "$rootScope",
  function($scope, $rootScope) {
        $rootScope.startSelect = false;
  }
]);

CSS

.box {
  padding: 10px;
  margin: 15px;
  background: #FFF;
  width: 200px;
  margin: 15px auto;
}

.selected {
  background: red;
  color: #FFF;
}

이제 어떻게할까요? 미리 감사드립니다

알렉산드 루 푸판

AngularJS 문서에서 :

DOM을 수정하려는 지시문은 일반적으로 링크 옵션을 사용하여 DOM 리스너를 등록하고 DOM을 업데이트합니다. 템플릿이 복제 된 후 실행되며 지시문 논리가 배치됩니다.

따라서 link처음에 한 번만 실행됩니다. 그리고 이것을 확인하는 부분도 있습니다 : if ($rootScope.startSelect) {...}. 이 값이 true매번 실행되도록 다른 리스너 내부 에 있는지 확인해야합니다 . tap예를 들어 제스처 를 사용할 수 있습니다 .

$ionicGesture.on('tap', function() {
  if ($rootScope.startSelect) {
    if (elem.hasClass('selected')) {
      elem.removeClass('selected');
    } else {
      elem.addClass('selected');
    }
  }
}, elem);

공지 사항 $rootScope.selected남아 true최초의 후 hold이벤트는, 그래서 너무 선택할 역할을합니다 테이핑. 이것이 당신이 찾고있는 기능인지 모르겠다.

다음은 귀하의 예제가 포함 된 업데이트 된 바이올린입니다. http://jsfiddle.net/browomk2/2/

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ng-options를 사용하여 객체 배열로 여러 선택 요소 선택을 구체화합니다.

분류에서Dev

$ scope가 선택 요소에서 ng-model 값을 선택하지 않습니다.

분류에서Dev

ionic / Angularjs-ng-change에서 확인란을 선택 취소 할 수 없습니다.

분류에서Dev

하위 항목을 선택하지 않고 요소 선택

분류에서Dev

페이딩 요소와 결합 된 JQuery 표시 선택기

분류에서Dev

angularjs를 사용하여 선택 상자의 옵션에 ng-click 적용

분류에서Dev

AngularJS를 사용하여 선택 요소의 유효성을 검사하는 방법

분류에서Dev

N 개의 요소가있을 때 N 개의 요소와 일치하는 단일 CSS 선택기

분류에서Dev

두 개의 XMLTable을 결합하는 동안 고유 한 요소 선택

분류에서Dev

선택기에서 논리 OR을 사용하여 jQuery로 HTML 요소 선택

분류에서Dev

AngularJS는 태그로 지시문을 표시하는 DOM 요소를 선택합니다.

분류에서Dev

angularjs의 ng-options를 사용하여 선택 상자에서 여러 옵션을 선택하십시오.

분류에서Dev

jQuery로 여러 값을 사용하여 ID로 요소 선택

분류에서Dev

2 개의 CTE와 여러 선택 항목을 하나의 쿼리로 결합

분류에서Dev

jquery는 이전 요소가 선택자와 일치하는 각 요소를 선택합니다.

분류에서Dev

녹아웃을 사용하여 요소 또는 요소 유형 선택

분류에서Dev

Inno Setup은 특정 구성 요소를 선택하면 구성 요소 선택을 비활성화합니다.

분류에서Dev

선택 상자 선택을 입력 필드와 바인딩하는 방법. AngularJS

분류에서Dev

Python에서 Selenuim을 사용하여 요소 선택 문제

분류에서Dev

xmlstarlet을 사용하여 web.xml에서 xml 요소 선택

분류에서Dev

속성 값을 사용하여 XML 요소 선택

분류에서Dev

논리 행렬을 사용하여 셀의 요소 선택

분류에서Dev

XSLT / XPATH를 사용하여 특정 값을 가진 자식 요소가있는 요소를 선택합니다.

분류에서Dev

unnest와 결합 된 postgresql 배열 요소를 선택하는 동안 막대한 메모리 소비

분류에서Dev

AngularJS를 사용하여 모든 확인란을 선택 / 선택 취소하는 방법은 무엇입니까?

분류에서Dev

Angular 8을 사용하여 요소 선택에서 선택한 옵션 요소를 선택 취소하는 방법

분류에서Dev

ng-mousover를 사용하여 모든 요소가 아닌 호버 된 요소 만 선택-ng-repeat 사용

분류에서Dev

CSS 선택기-특정 요소와 형제가있는 부모 요소를 선택합니다.

분류에서Dev

중첩 된 선택을 SASS와 결합

Related 관련 기사

  1. 1

    ng-options를 사용하여 객체 배열로 여러 선택 요소 선택을 구체화합니다.

  2. 2

    $ scope가 선택 요소에서 ng-model 값을 선택하지 않습니다.

  3. 3

    ionic / Angularjs-ng-change에서 확인란을 선택 취소 할 수 없습니다.

  4. 4

    하위 항목을 선택하지 않고 요소 선택

  5. 5

    페이딩 요소와 결합 된 JQuery 표시 선택기

  6. 6

    angularjs를 사용하여 선택 상자의 옵션에 ng-click 적용

  7. 7

    AngularJS를 사용하여 선택 요소의 유효성을 검사하는 방법

  8. 8

    N 개의 요소가있을 때 N 개의 요소와 일치하는 단일 CSS 선택기

  9. 9

    두 개의 XMLTable을 결합하는 동안 고유 한 요소 선택

  10. 10

    선택기에서 논리 OR을 사용하여 jQuery로 HTML 요소 선택

  11. 11

    AngularJS는 태그로 지시문을 표시하는 DOM 요소를 선택합니다.

  12. 12

    angularjs의 ng-options를 사용하여 선택 상자에서 여러 옵션을 선택하십시오.

  13. 13

    jQuery로 여러 값을 사용하여 ID로 요소 선택

  14. 14

    2 개의 CTE와 여러 선택 항목을 하나의 쿼리로 결합

  15. 15

    jquery는 이전 요소가 선택자와 일치하는 각 요소를 선택합니다.

  16. 16

    녹아웃을 사용하여 요소 또는 요소 유형 선택

  17. 17

    Inno Setup은 특정 구성 요소를 선택하면 구성 요소 선택을 비활성화합니다.

  18. 18

    선택 상자 선택을 입력 필드와 바인딩하는 방법. AngularJS

  19. 19

    Python에서 Selenuim을 사용하여 요소 선택 문제

  20. 20

    xmlstarlet을 사용하여 web.xml에서 xml 요소 선택

  21. 21

    속성 값을 사용하여 XML 요소 선택

  22. 22

    논리 행렬을 사용하여 셀의 요소 선택

  23. 23

    XSLT / XPATH를 사용하여 특정 값을 가진 자식 요소가있는 요소를 선택합니다.

  24. 24

    unnest와 결합 된 postgresql 배열 요소를 선택하는 동안 막대한 메모리 소비

  25. 25

    AngularJS를 사용하여 모든 확인란을 선택 / 선택 취소하는 방법은 무엇입니까?

  26. 26

    Angular 8을 사용하여 요소 선택에서 선택한 옵션 요소를 선택 취소하는 방법

  27. 27

    ng-mousover를 사용하여 모든 요소가 아닌 호버 된 요소 만 선택-ng-repeat 사용

  28. 28

    CSS 선택기-특정 요소와 형제가있는 부모 요소를 선택합니다.

  29. 29

    중첩 된 선택을 SASS와 결합

뜨겁다태그

보관