AngularJS 앱의 정의되지 않은 범위 변수

Sushant Joshi

내 범위에있는 배열 개체의 요소에 부울 속성을 설정하려고합니다.

아래 코드에서 tasks [id] .deleted = true로 설정하려고하면 다음과 같은 오류가 발생합니다.

angular.js:12798 TypeError: Cannot set property 'deleted' of undefined
at Scope.$scope.delete (main.js:54)

내가 어디로 잘못 가고 있습니까?

내 전체 코드 파일은 다음과 같습니다.

angular.module('ngMaterialTaskListApp')
.controller('MainCtrl', function ($scope, $mdDialog, TaskService) {

    // Model from which View populates data
    $scope.tasks = [];
    console.log($scope.tasks);

    $scope.showAddDialog = function (ev) {
        $mdDialog.show({
            controller: DialogController,
            templateUrl: '../views/add-dialog-template.html',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose: true,
            fullscreen: true, //Only for xs and sm screen sizes
            locals: { //For DialogController, as tasks
                tasks: $scope.tasks
            }
        });
    };
    /*----------- Function to delete items onClick of delete icon -----------*/
    $scope.delete = function (id) {
        console.log($scope.tasks[id]);
        console.log(id);
        // console.log($scope.tasks[id].name);
        $scope.tasks[id].deleted = true;
    };

    /*----------- DialogController function -----------*/
    function DialogController($scope, $mdDialog, tasks) {
        $scope.task = {};
        $scope.hide = function () {
            $mdDialog.hide();
            //TODO Add a message as to what happened
        };
        $scope.cancel = function () {
            $mdDialog.cancel();
            //TODO Add a message as to what happened
        };
        /*----------- Method show the add dialog -----------*/
        $scope.addData = function () {
            if (null !== $scope.task.name && null !== $scope.task.description) {
                /*----------- Using moment.js to parse date and time -----------*/
                $scope.task.date = moment($scope.task.date, '').format('DD MMM YYYY');
                $scope.task.time = moment($scope.task.time, '').format('h:mm a');
                $scope.task.done = false; // Every new task is pending!
                $scope.task.deleted = false; // Every new task exists!
                var GlobalID = Date.now();
                console.log(GlobalID);
                $scope.task.id = GlobalID;
                /*----------- Performing http POST -----------*/
                TaskService.postTask($scope.task);
                /*----------- Pushing to tasks object in $scope of MainCtrl -----------*/
                // Have to update tasks again
                tasks.push($scope.task);
                $scope.hide();
                console.log(tasks); //DEBUGGING
            } else {
                //TODO ADD INVALID/NULL DATA WARNING
            }
        };
    };
    // DEPRECATED - USED FOR DATA WHEN SERVER NOT AVAILABLE
    TaskService.getTasks().then(function (response) {
        $scope.tasks = response.data.tasks;
    }, function (error) {
        console.log(error + "This");
    });
    //USING THIS TO GET DATA FROM SERVER
    TaskService.getAllTasks().then(function (response) {
        // console.log(response.data);
        $scope.tasks = response.data;
        console.log($scope.tasks);
    });
});
구스타보 가브리엘

당신의 HTML은 어떻습니까? 나는 ng-repeat의 버튼 내부에 다음과 같습니다.

ng-click="delete(task.id)"

다음과 같이 넣어보십시오.

ng-click="delete($index)"

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수 정의되지 않은 범위

분류에서Dev

다른 기능에 대한 페이지로드에 정의되지 않은 AngularJS 범위 변수

분류에서Dev

AngularJS에 정의되지 않은 변수

분류에서Dev

컨트롤러에서 정의되지 않은 범위 변수

분류에서Dev

지시문 링크 함수에 정의되지 않은 범위 변수

분류에서Dev

AngularJS의 숫자 범위가 변수로 렌더링되지 않음

분류에서Dev

C 정적 범위 변수 정의되지 않음

분류에서Dev

Backbonejs 범위 문제, 어떻게 든 정의되지 않은 변수

분류에서Dev

카르마 테스트에서 정의되지 않은 예상 범위 변수

분류에서Dev

`.then` 메서드 외부에서 정의되지 않은 범위 변수

분류에서Dev

AngularJS 지시어 단위 테스트의 정의되지 않은 함수

분류에서Dev

Angularjs : ReferenceError : 범위가 정의되지 않았습니다.

분류에서Dev

지역 변수와 같은 AngularJs $ 범위

분류에서Dev

AngularJS에서 정의되지 않은 필터 매개 변수

분류에서Dev

$ watch에 정의되지 않은 범위

분류에서Dev

변수가 정의되지 않았습니다. 이상한 변수 범위

분류에서Dev

AngularJS : $ routeProvider의 범위 변수 액세스

분류에서Dev

angularjs의 동적 범위 변수

분류에서Dev

외부 범위에 정의 된 변수가 내부 범위에 정의되지 않았습니다.

분류에서Dev

범위가 정의되지 않아 Angularjs 모듈에서 함수를 호출합니다.

분류에서Dev

전역 변수는 함수 범위 내에서 정의되지 않습니다.

분류에서Dev

각도 지시문-함수 내부에 정의되지 않은 범위

분류에서Dev

함수간에 정의되지 않은 JavaScript 전역 동적 변수가 로컬 범위 인 것 같습니다.

분류에서Dev

flutter의 범위에서 변수가 변경되지 않음

분류에서Dev

C ++ / CX Metro Windows-create_task 구현으로 해당 범위에 정의되지 않은 변수 사용 방지

분류에서Dev

Python 3 : 범위에서 재정의 할 때 변수가 해결되지 않음

분류에서Dev

Angular.js 범위 변수 정의되지 않음, ng-repeat 초기 상태

분류에서Dev

자바 스크립트 변수 범위 반환 정의되지 않음

분류에서Dev

Angularjs : 함수의 매개 변수로 전달 된 범위의 변수 개수가 업데이트되지 않습니다.

Related 관련 기사

  1. 1

    변수 정의되지 않은 범위

  2. 2

    다른 기능에 대한 페이지로드에 정의되지 않은 AngularJS 범위 변수

  3. 3

    AngularJS에 정의되지 않은 변수

  4. 4

    컨트롤러에서 정의되지 않은 범위 변수

  5. 5

    지시문 링크 함수에 정의되지 않은 범위 변수

  6. 6

    AngularJS의 숫자 범위가 변수로 렌더링되지 않음

  7. 7

    C 정적 범위 변수 정의되지 않음

  8. 8

    Backbonejs 범위 문제, 어떻게 든 정의되지 않은 변수

  9. 9

    카르마 테스트에서 정의되지 않은 예상 범위 변수

  10. 10

    `.then` 메서드 외부에서 정의되지 않은 범위 변수

  11. 11

    AngularJS 지시어 단위 테스트의 정의되지 않은 함수

  12. 12

    Angularjs : ReferenceError : 범위가 정의되지 않았습니다.

  13. 13

    지역 변수와 같은 AngularJs $ 범위

  14. 14

    AngularJS에서 정의되지 않은 필터 매개 변수

  15. 15

    $ watch에 정의되지 않은 범위

  16. 16

    변수가 정의되지 않았습니다. 이상한 변수 범위

  17. 17

    AngularJS : $ routeProvider의 범위 변수 액세스

  18. 18

    angularjs의 동적 범위 변수

  19. 19

    외부 범위에 정의 된 변수가 내부 범위에 정의되지 않았습니다.

  20. 20

    범위가 정의되지 않아 Angularjs 모듈에서 함수를 호출합니다.

  21. 21

    전역 변수는 함수 범위 내에서 정의되지 않습니다.

  22. 22

    각도 지시문-함수 내부에 정의되지 않은 범위

  23. 23

    함수간에 정의되지 않은 JavaScript 전역 동적 변수가 로컬 범위 인 것 같습니다.

  24. 24

    flutter의 범위에서 변수가 변경되지 않음

  25. 25

    C ++ / CX Metro Windows-create_task 구현으로 해당 범위에 정의되지 않은 변수 사용 방지

  26. 26

    Python 3 : 범위에서 재정의 할 때 변수가 해결되지 않음

  27. 27

    Angular.js 범위 변수 정의되지 않음, ng-repeat 초기 상태

  28. 28

    자바 스크립트 변수 범위 반환 정의되지 않음

  29. 29

    Angularjs : 함수의 매개 변수로 전달 된 범위의 변수 개수가 업데이트되지 않습니다.

뜨겁다태그

보관