AngularJs - связь между контроллером и директивой - PullRequest
0 голосов
/ 13 декабря 2018

Например;

GetSwatchCartListFunc: как получить доступ к этому методу напрямую из директивы

homeController.js

(function (App) {
    var Home = function Home($scope, MemberService) {


        $scope.GetSwatchCartListFunc = function (patternDetailLineId) {
            MemberService.GetSwatchCartList(patternDetailLineId).then(function (res) {
                console.log(res.data);
                if (res.data.status === ServiceResulState.Success) {
                    $scope.SwatchCartListData = res.data.resultList;
                    $('#swathcartList').modal('show');
                } else if (res.data.status === ServiceResulState.Fail) {
                    toastr.warning(res.data.message);
                    $('#userLoginModal').modal('show');
                }
            });
        };


    };

    Home.$inject = ["$scope", "MemberService"];

    App.controller("HomeController", Home);
})(App);

directive.js

(function (App) {
App.directive("ngPatternPre", ['toastr', function (toastr) {
    return {
        restrict: 'E',
        templateUrl: '/views/Directives/NgPattern.html'    
        }
    };
}]);})(App);

NgPattern.html

<a ng-click="SwatchCartList(pId)" title="Add"><i class="ti-Line-Gallery"></i></a>

1 Ответ

0 голосов
/ 18 декабря 2018

для решения проблемы требуется следующее изменение в directive.js

directive.js

(function (App) {
App.directive("ngPatternPre", ['toastr', function (toastr) {
    return {
        restrict: 'E',
        templateUrl: '/views/Directives/NgPattern.html',
        link: function (scope, element, attrs) {                

            scope.SwatchCartList = function (pId) {
                scope.GetSwatchCartListFunc(pId);                   
            };

        }
    };
}]);})(App);
...