我试图让我的头指向,我可以很容易地使用模板功能抛出我的
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"); };