Oam*_*Psy 14 angularjs angularjs-directive angularjs-scope angularjs-ng-click
我正试图了解指令,我可以轻松地使用模板函数抛出我的HTML,但是,如果我在我的模板中有一个ng-click,我如何在链接函数中访问它?
我的指示:
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");
};
}
};
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我已添加$scope.scrollRight到我的link功能中,但是在单击时,控制台中没有任何内容.
如果我放置:
$scope.scrollRight = function () {
console.log("scrollRight clicked");
};
$scope.scrollLeft = function () {
console.log("scrollLeft clicked");
};
Run Code Online (Sandbox Code Playgroud)
在我的控制器中(并且在我的指令中),它按预期工作.
任何帮助赞赏.
小智 17
您的链接功能定义如下:
link: function(scope, elem, attrs) {..}
Run Code Online (Sandbox Code Playgroud)
但是你在$scope变量上编写函数:
$scope.scrollRight = function () {
console.log("scrollRight clicked");
};
$scope.scrollLeft = function () {
console.log("scrollLeft clicked");
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$ scope实际上没有注入到链接函数中(并且不能注入),因此链接只是带参数的简单函数.你应该改变$scope到scope它应该工作:
scope.scrollRight = function () {
console.log("scrollRight clicked");
};
scope.scrollLeft = function () {
console.log("scrollLeft clicked");
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21996 次 |
| 最近记录: |