AngularJS의 팩토리 기능에서 범위에 도달하는 방법

테스트 사용자

ng-grid가 있으며 옵션은 다음과 같습니다.

$scope.gridOptions = {
    enableRowSelection: true,
    enableSelectAll: true,
    selectionRowHeaderWidth: 35,
    rowHeight: 35,
    showGridFooter: false,
    enableColumnMenus: false,
    enableSorting: true,
    enableFiltering: true,
    columnDefs: [
        {
            name: "",
            field: "fake",
            cellTemplate: '<div class="ui-grid-cell-contents" >' +
            '<button value="Edit" ng-if="!row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.deleteRow($event)">Delete</button>' +
            '<button value="Edit" ng-if="!row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.enterEditMode($event)">Edit</button>' +
            '<button value="Edit" ng-if="row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.saveEdit($event)">Update</button>' +
            '<button value="Edit" ng-if="row.inlineEdit.isEditModeOn" ng-click="row.inlineEdit.cancelEdit($event)">Cancel</button>' +
            '</div>',
            enableCellEdit: false,
            enableFiltering: false,
            enableSorting: false,
            showSortMenu: false,
            enableColumnMenu: false,
            width: "10%"
        },
        {
            name: 'Id',
            visible: false
        },
        {
            name: 'Key',
            enableCellEdit: true,
            cellTemplate: '<div class="ui-grid-cell-contents"><div ng-class="{\'viewr-dirty\' : row.inlineEdit.entity[col.field].isValueChanged }">{{row.entity[col.field]}}</div></div>',
            width: "30%"
        },

        {
            name: 'Value',
            enableCellEdit: true,
            cellTemplate: '<div class="ui-grid-cell-contents"><div ng-class="{\'viewr-dirty\' : row.inlineEdit.entity[col.field].isValueChanged }">{{row.entity[col.field]}}</div></div>',
            width: "30%"
        }

    ]
}

인라인 편집을 사용하고 있으므로 셀에 버튼이 있습니다. 이 버튼 중 하나는 삭제입니다. 이 버튼을 클릭하면 데이터베이스에서 레코드가 삭제됩니다. 그러나 삭제 작업이 완료된 후 그리드를 새로 고치고 싶습니다. 공장에서 함수를 호출합니다.

angular.module('ui.grid').factory('InlineEdit', function ($interval, $rootScope, $mdDialog, LocalizationService, AlertDialogFactory) {
function inlineEdit(entity, index, grid) {
    this.grid = grid;
    this.index = index;
    this.entity = {};
    this.isEditModeOn = false;
    this.init(entity);
}

inlineEdit.prototype = {
    init: function (rawEntity) {
        var self = this;

        for (var prop in rawEntity) {
            self.entity[prop] = {
                value: rawEntity[prop],
                isValueChanged: false,
                isSave: false,
                isCancel: false,
                isEdit: false
            }
        }
    },

    deleteRow: function (event) {
        event && event.stopPropagation();
        var self = this;

        self.isEditModeOn = false;

        for (var prop in self.entity) {
            self.entity[prop].isSave = true;
            self.entity[prop].isEdit = false;
        }
        LocalizationService.deleteRow(self.grid.rows[self.index]).then(function (result) {
            if (result.data.IsOk) {
                // CODE HERE...
            }
            else {
                AlertDialogFactory.ShowAlertDialog(result.data.Message, "ERROR");
            }
        });
    },
}
    return inlineEdit;
})

result.data.IsOktrue 인 경우 gridOptions.data공장 기능에서 어떻게 새로 고칠 수 있습니까? 공장에서 어떻게 범위에 도달 할 수 있습니까?

Stanislav Nykyforuk

솔루션으로 $ rootScope에서 이벤트를 브로드 캐스트 할 수 있습니다. 다음과 같습니다.

$rootScope.$broadcast("rowDeleted");

그리고 $ scope에 액세스 할 수있는 곳에서 해당 이벤트를 처리하십시오.

$scope.$on("rowDeleted", deleteHandler);

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AngularJS 팩토리에 매개 변수를 전달하는 방법

분류에서Dev

angularjs 팩토리에서 함수를 호출하는 방법

분류에서Dev

AngularJS에서 다른 팩토리를 사용하는 비동기 팩토리를 단위 테스트하는 방법은 무엇입니까?

분류에서Dev

angularjs에서 서비스 또는 팩토리를 사용하는 방법

분류에서Dev

ng-repeat 범위 밖의 변수에 도달하는 방법

분류에서Dev

AngularJS-공급자 내부에서 팩토리를 사용하는 방법

분류에서Dev

angularjs 팩토리에서 해결 된 후 함수의 결과를 반환하는 방법

분류에서Dev

JavaScript의 팩토리 함수에서 불변 객체를 반환하는 방법

분류에서Dev

angularJs에서 팩토리 모듈을 만드는 올바른 방법

분류에서Dev

이 코드를 두 가지 방법에서 하나의 방법으로 리팩토링하는 방법

분류에서Dev

Nativescript 웹팩의 앱 디렉토리에 xml 파일을 포함하는 방법

분류에서Dev

팩토리 클래스 내에서 FactoryGirl의`build ()`또는`create ()`에 전달 된 인수를 가져 오는 방법

분류에서Dev

부모 속성의 조건에 따라 하위 팩토리를 생성하는 방법

분류에서Dev

AngularJS 서비스 / 팩토리 단위 테스트 방법

분류에서Dev

netbeans에서 리팩토링하는 방법

분류에서Dev

Haskell에서이 코드를 리팩토링하는 방법

분류에서Dev

AngularJS 팩토리에서 "두 번 반환"(두 속성)하는 방법은 무엇입니까?

분류에서Dev

C # .Net Core의 팩토리 디자인 패턴에서 리플렉션을 사용하는 방법

분류에서Dev

단위 테스트에서 거대한 크기의 클래스와 리팩토링을 관리하는 방법 (junit)

분류에서Dev

angularjs에서 범위를 아는 방법

분류에서Dev

단일 컨트롤러에서 전역 변수를 만들고 Angularjs의 팩토리 내부에서 함수를 호출하는 방법

분류에서Dev

컨트롤러에서 섀도 잉되는 AngularJS 팩토리

분류에서Dev

Symfony2에서 동적 팩토리를 만드는 방법

분류에서Dev

C의 팩토리얼 알고리즘 : 이전 반복의 결과를 문자열에 저장하는 방법?

분류에서Dev

루비에서 해시의 반복을 리팩토링하는 더 효율적인 방법이 있습니까?

분류에서Dev

구성하기 전에 클래스에서 사용할 수있는 속성을 정의하는 방법 (예 : 팩토리 메서드의 경우)?

분류에서Dev

방법의 순서를 리팩토링

분류에서Dev

릴리스 모드에서 '제어가 비 무효 기능의 끝에 도달 함'경고를 피하는 가장 좋은 방법

분류에서Dev

Unity의 XML 구성에 팩토리를 등록하는 방법이 있습니까?

Related 관련 기사

  1. 1

    AngularJS 팩토리에 매개 변수를 전달하는 방법

  2. 2

    angularjs 팩토리에서 함수를 호출하는 방법

  3. 3

    AngularJS에서 다른 팩토리를 사용하는 비동기 팩토리를 단위 테스트하는 방법은 무엇입니까?

  4. 4

    angularjs에서 서비스 또는 팩토리를 사용하는 방법

  5. 5

    ng-repeat 범위 밖의 변수에 도달하는 방법

  6. 6

    AngularJS-공급자 내부에서 팩토리를 사용하는 방법

  7. 7

    angularjs 팩토리에서 해결 된 후 함수의 결과를 반환하는 방법

  8. 8

    JavaScript의 팩토리 함수에서 불변 객체를 반환하는 방법

  9. 9

    angularJs에서 팩토리 모듈을 만드는 올바른 방법

  10. 10

    이 코드를 두 가지 방법에서 하나의 방법으로 리팩토링하는 방법

  11. 11

    Nativescript 웹팩의 앱 디렉토리에 xml 파일을 포함하는 방법

  12. 12

    팩토리 클래스 내에서 FactoryGirl의`build ()`또는`create ()`에 전달 된 인수를 가져 오는 방법

  13. 13

    부모 속성의 조건에 따라 하위 팩토리를 생성하는 방법

  14. 14

    AngularJS 서비스 / 팩토리 단위 테스트 방법

  15. 15

    netbeans에서 리팩토링하는 방법

  16. 16

    Haskell에서이 코드를 리팩토링하는 방법

  17. 17

    AngularJS 팩토리에서 "두 번 반환"(두 속성)하는 방법은 무엇입니까?

  18. 18

    C # .Net Core의 팩토리 디자인 패턴에서 리플렉션을 사용하는 방법

  19. 19

    단위 테스트에서 거대한 크기의 클래스와 리팩토링을 관리하는 방법 (junit)

  20. 20

    angularjs에서 범위를 아는 방법

  21. 21

    단일 컨트롤러에서 전역 변수를 만들고 Angularjs의 팩토리 내부에서 함수를 호출하는 방법

  22. 22

    컨트롤러에서 섀도 잉되는 AngularJS 팩토리

  23. 23

    Symfony2에서 동적 팩토리를 만드는 방법

  24. 24

    C의 팩토리얼 알고리즘 : 이전 반복의 결과를 문자열에 저장하는 방법?

  25. 25

    루비에서 해시의 반복을 리팩토링하는 더 효율적인 방법이 있습니까?

  26. 26

    구성하기 전에 클래스에서 사용할 수있는 속성을 정의하는 방법 (예 : 팩토리 메서드의 경우)?

  27. 27

    방법의 순서를 리팩토링

  28. 28

    릴리스 모드에서 '제어가 비 무효 기능의 끝에 도달 함'경고를 피하는 가장 좋은 방법

  29. 29

    Unity의 XML 구성에 팩토리를 등록하는 방법이 있습니까?

뜨겁다태그

보관