AngularJS – 在定制指令中访问点击

前端之家收集整理的这篇文章主要介绍了AngularJS – 在定制指令中访问点击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让我的头指向,我可以很容易地使用模板功能抛出我的 HTML,但是,如果我有一个ng点击在我的模板,我如何访问链接功能

我的指令:

app.directive('directiveScroll',function () {
return {
      restrict: 'AE',replace: 'true',template:   '<div class="scroll-btns">' +
            '<div class="arrow-left" ng-click="scrollLeft(sectionID)"></div>' +
            '<div class="arrow-right" ng-click="scrollRight(sectionID)"></div>' +
        '</div>',link: function(scope,elem,attrs) {
        $scope.scrollRight  = function () {
          console.log("scrollRight  clicked");
        };
        $scope.scrollLeft  = function () {
          console.log("scrollLeft  clicked");
        };
      }
  };
});

如你所见,我已经添加了$scope.scrollRight到我的链接功能,但是在点击,任何东西都不会出现在控制台中.

如果我放置:

$scope.scrollRight  = function () {
     console.log("scrollRight  clicked");
};

$scope.scrollLeft  = function () {
     console.log("scrollLeft  clicked");
};

在我的控制器(和我的指令),它的工作原理.

任何帮助赞赏.

您的链接功能定义如下:
link: function(scope,attrs) {..}

但是您正在$scope变量上编写函数

$scope.scrollRight  = function () {
      console.log("scrollRight  clicked");
    };
    $scope.scrollLeft  = function () {
      console.log("scrollLeft  clicked");
    };

在这种情况下,$范围实际上并不注入链接函数(并且不能被注入),所以链接只是简单的参数参数.您应该将$范围更改为范围,它应该工作:

scope.scrollRight  = function () {
      console.log("scrollRight  clicked");
    };
    scope.scrollLeft  = function () {
      console.log("scrollLeft  clicked");
    };

猜你在找的Angularjs相关文章