Angularjs의 입력 텍스트를 통해 추가되는 새 span 요소의 배열에 추가

Satheesh Panduga

Angularjs의 감시자를 사용하여 범위 값 목록으로 배열 개체를 제어하기 위해 고군분투하고 있습니다.

부분적으로 작동하며, 스팬 요소를 입력하면 각 스팬에 대해 배열이 자동으로 생성되고 스팬 요소를 제거하면 기존 배열에서 각 행이 삭제되고 다른 모든 행이 올바르게 재정렬됩니다 (값을 방해하지 않고 이름).

문제는 span 요소를 제거하고 입력 텍스트를 사용하여 다시 입력 할 때 배열에 추가되지 않는다는 것입니다. 따라서 하나의 span 요소를 제거하고 새 요소를 입력 한 후 이러한 새 값이 내 배열에 추가되지 않습니다.

데모 코드 바이올린 링크

내 코드에서 무엇을 놓치고 있습니까?

남은 행의 값 (배열의 이름 및 값)을 방해하지 않고 기존 배열 개체에 다시 삽입 된 범위를 추가하려면 어떻게해야합니까?

값은 차트에 따라 언제든지 변경됩니다.

다음은 사용중인 코드입니다.

<script>
    function rdCtrl($scope) {
        $scope.dataset_v1 = {};
        $scope.dataset_wc = {};
        $scope.$watch('dataset_wc', function (newVal) {
            //alert('columns changed :: ' + JSON.stringify($scope.dataset_wc, null, 2));
            $('#status').html(JSON.stringify($scope.dataset_wc));

        }, true);

        $(function () {
            $('#tags input').on('focusout', function () {
                var txt = this.value.replace(/[^a-zA-Z0-9\+\-\.\#]/g, ''); // allowed characters
                if (txt) {
                    //alert(txt);
                    $(this).before('<span class="tag">' + txt.toLowerCase() + '</span>');
                    var div = $("#tags");
                    var spans = div.find("span");
                    spans.each(function (i, elem) { // loop over each spans
                        $scope.dataset_v1["d" + i] = { // add the key for each object results in "d0, d1..n"
                            id: i, // gives the id as "0,1,2.....n"
                            name: $(elem).text(), // push the text of the span in the loop
                            value: 3
                        }
                    });
                    $("#assign").click();
                }
                this.value = "";
            }).on('keyup', function (e) {
                // if: comma,enter (delimit more keyCodes with | pipe)
                if (/(188|13)/.test(e.which)) $(this).focusout();
                if ($('#tags span').length == 7) {
                    document.getElementById('inptags').style.display = 'none';
                }
            });

            $('#tags').on('click', '.tag', function () {
                var tagrm = this.innerHTML;
                sk1 = $scope.dataset_wc;
                removeparent(sk1);
                filter($scope.dataset_v1, tagrm, 0);
                $(this).remove();
                document.getElementById('inptags').style.display = 'block';
                $("#assign").click();
            });
        });

        $scope.assign = function () {
            $scope.dataset_wc = $scope.dataset_v1;
        };

        function filter(arr, m, i) {
            if (i < arr.length) {
                if (arr[i].name === m) {
                    arr.splice(i, 1);
                    arr.forEach(function (val, index) {
                        val.id = index
                    });
                    return arr
                } else {
                    return filter(arr, m, i + 1)
                }
            } else {
                return m + " not found in array"
            }
        }

        function removeparent(d1)
        {
            dataset = d1;
            d_sk = [];
            Object.keys(dataset).forEach(function (key) {
                // Get the value from the object
                var value = dataset[key].value;
                d_sk.push(dataset[key]);
            });
            $scope.dataset_v1 = d_sk;
        }
     }
    </script>
Binvention

angular를 사용하여 특히 ng-repeat 및 ng-click 및 ng-model을 사용하여 html 측면에서 더 많은 것을 원할 것이라고 생각합니다. 먼저 코드 파일에서 간단히 수행하거나 ng-를 사용하여 배열을 만들고 싶을 것입니다. init. 여기에 예가 있습니다

(function(){
  var app=angular.module('demoApp',[]);
  app.controller('demoApp',[function(){
    this.spans=[""];
    this.currentSpan='';
    this.addSpan=function(){
      this.spans.push(this.currentSpan);
	  this.currentSpan='';
    };
    }]);
  })();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='demoApp'>
<div ng-controller='demoApp as demo'>
  <span ng-repeat='span in demo.spans track by $index' ng-click='demo.spans.splice($index,1)'>{{span}}</span><span>{{demo.currentSpan}}</span>
  <textarea ng-model='demo.currentSpan' placeholder='new text'></textarea>
  <button ng-click='demo.addSpan()' >add</button>
</div>
</div>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

루프 자바 스크립트를 통해 배열에 추가되는 새 요소의 색인 지정

분류에서Dev

MongoDb의 배열에 새 요소 추가

분류에서Dev

PHP를 통해 전송 된 이메일의 텍스트가 새 줄에 입력되는 이유는 무엇입니까?

분류에서Dev

R의 루프를 통해 data.frame에 새 열 추가

분류에서Dev

js에 의해 입력에 새로 추가 된 문자를 가져옵니다.

분류에서Dev

자바 스크립트에서 배열의 객체에 새 요소를 추가하는 방법

분류에서Dev

MongoDB의 $ push를 사용하여 배열에 새 객체를 추가 할 때 ObjectID가있는 _id가 추가되는 이유는 무엇입니까?

분류에서Dev

새 줄의 시작 부분에 추가 단어를 추가하는 키 바인드 숭고한 텍스트 "입력"버튼

분류에서Dev

AngularJS에 의해 양식에 동적으로 텍스트 상자 요소 추가

분류에서Dev

UILabel의 새 줄에 텍스트 추가

분류에서Dev

jQuery로 span 태그의 텍스트를 data-attr에 추가하는 방법은 무엇입니까?

분류에서Dev

AngularJS의 동적 중첩 목록에 새 입력 추가

분류에서Dev

angularjs의 지시문을 통해 새로 생성 된 요소에 동적 모델 추가

분류에서Dev

Selenium Java에서 텍스트를 통해 찾은 요소의 ID 추출

분류에서Dev

입력 텍스트를 통해 새로 추가 된 스팬 값을 표시하는 방법

분류에서Dev

Javascript를 통해 JSON 파일의 요소를 HTML에 추가

분류에서Dev

XSLT를 통해 XML 데이터 위에 새 요소 추가

분류에서Dev

XSLT를 통해 XML 데이터 위에 새 요소 추가

분류에서Dev

AngularJS의 $ location.hash를 통해 URL 해시를 설정하면 해시 앞에 "# /"가 추가되는 이유는 무엇입니까?

분류에서Dev

ES6 상태의 배열에 새 요소 추가

분류에서Dev

개체 배열의 각 개체에 새 요소 추가

분류에서Dev

사전 배열의 모든 요소에 새 키 값 추가

분류에서Dev

python 3.x : 새 줄의 사용자 입력에 따라 기존 파일에 텍스트를 작성 / 추가하는 방법은 무엇입니까?

분류에서Dev

ElasticSearch의 중첩 된 객체 배열에 새 요소를 푸시 / 추가하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

네이티브 HTML 요소 (입력 텍스트, div, span 등)에 angularjs 지시문을 추가 하시겠습니까?

분류에서Dev

PostgreSQL의 배열에 인덱스가있는 요소 추가

분류에서Dev

반환 된 요소가 null 인 경우 배열의 인덱스를 통해 역 추적하는 방법

분류에서Dev

AS3의 루프를 통해 배열에 숫자를 추가하는 방법은 무엇입니까?

분류에서Dev

Node.js를 통해 Postgres의 텍스트 유형 열에 동적 문자열을 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    루프 자바 스크립트를 통해 배열에 추가되는 새 요소의 색인 지정

  2. 2

    MongoDb의 배열에 새 요소 추가

  3. 3

    PHP를 통해 전송 된 이메일의 텍스트가 새 줄에 입력되는 이유는 무엇입니까?

  4. 4

    R의 루프를 통해 data.frame에 새 열 추가

  5. 5

    js에 의해 입력에 새로 추가 된 문자를 가져옵니다.

  6. 6

    자바 스크립트에서 배열의 객체에 새 요소를 추가하는 방법

  7. 7

    MongoDB의 $ push를 사용하여 배열에 새 객체를 추가 할 때 ObjectID가있는 _id가 추가되는 이유는 무엇입니까?

  8. 8

    새 줄의 시작 부분에 추가 단어를 추가하는 키 바인드 숭고한 텍스트 "입력"버튼

  9. 9

    AngularJS에 의해 양식에 동적으로 텍스트 상자 요소 추가

  10. 10

    UILabel의 새 줄에 텍스트 추가

  11. 11

    jQuery로 span 태그의 텍스트를 data-attr에 추가하는 방법은 무엇입니까?

  12. 12

    AngularJS의 동적 중첩 목록에 새 입력 추가

  13. 13

    angularjs의 지시문을 통해 새로 생성 된 요소에 동적 모델 추가

  14. 14

    Selenium Java에서 텍스트를 통해 찾은 요소의 ID 추출

  15. 15

    입력 텍스트를 통해 새로 추가 된 스팬 값을 표시하는 방법

  16. 16

    Javascript를 통해 JSON 파일의 요소를 HTML에 추가

  17. 17

    XSLT를 통해 XML 데이터 위에 새 요소 추가

  18. 18

    XSLT를 통해 XML 데이터 위에 새 요소 추가

  19. 19

    AngularJS의 $ location.hash를 통해 URL 해시를 설정하면 해시 앞에 "# /"가 추가되는 이유는 무엇입니까?

  20. 20

    ES6 상태의 배열에 새 요소 추가

  21. 21

    개체 배열의 각 개체에 새 요소 추가

  22. 22

    사전 배열의 모든 요소에 새 키 값 추가

  23. 23

    python 3.x : 새 줄의 사용자 입력에 따라 기존 파일에 텍스트를 작성 / 추가하는 방법은 무엇입니까?

  24. 24

    ElasticSearch의 중첩 된 객체 배열에 새 요소를 푸시 / 추가하는 가장 좋은 방법은 무엇입니까?

  25. 25

    네이티브 HTML 요소 (입력 텍스트, div, span 등)에 angularjs 지시문을 추가 하시겠습니까?

  26. 26

    PostgreSQL의 배열에 인덱스가있는 요소 추가

  27. 27

    반환 된 요소가 null 인 경우 배열의 인덱스를 통해 역 추적하는 방법

  28. 28

    AS3의 루프를 통해 배열에 숫자를 추가하는 방법은 무엇입니까?

  29. 29

    Node.js를 통해 Postgres의 텍스트 유형 열에 동적 문자열을 추가하는 방법은 무엇입니까?

뜨겁다태그

보관