将函数表达式存储在angularjs指令的link函数中,并通过ng-click使用它
Storing a function expression inside a link function of an angularjs directive and use it via ng-click
我有以下angularjs指令,我希望能够使用ng-click在property-slider.html中执行showMap()。我错过了什么?
(function() {
'use strict';
angular
.module('myapp')
.directive('propertySlider', propertySlider);
function propertySlider($timeout) {
return {
restrict: 'E',
templateUrl: 'property-slider.html',
replace: true,
scope: {
property: '=',
photos: '='
},
link: function(scope, element) {
$timeout(function(){
var slider = element.flickity({
cellAlign: 'left',
cellSelector: '.gallery-cell',
lazyLoad: true,
wrapAround: true,
initialIndex: 1
});
var showMap = function(){
slider.flickity('select', 0);
};
},500);
}
};
}
})();
两个问题....函数需要分配给作用域,而不需要在$timeout
link: function(scope, element) {
scope.showMap = function () {
element.flickity('select', 0);
};
$timeout(function () {
element.flickity({
cellAlign: 'left',
cellSelector: '.gallery-cell',
lazyLoad: true,
wrapAround: true,
initialIndex: 1
});
}, 500);
}
除了使用ng-click
,您还可以将您的方法保留为指令的"private",并检测元素上的事件:
link: function(scope, element, attrs) {
element.on('click', function(e) {
showMap();
});
var showMap = ...
}
相关文章:
- 使用jqGrid列格式化程序函数使ng-click工作
- ng-click指令没有调用整个函数
- 在 Angular 指令中定义一个用于 ng-click 的函数
- 是否可以在 ng-click 中调用函数字符串
- 如何在 ng-click 函数中更改$rootScope值
- 在引导模式中使用“ng click”触发函数
- Angularjs指令链接调用ng-click中的函数
- 未找到ng-click函数中的参数
- 如果else为Angular,则使用ng click函数重复ng
- 如何在AngularJS ng-click(或ng-change,..)中调用服务函数
- AngularJS ng-click 指令不调用函数
- ng-class 的函数表达式在 ng-click 时被调用
- AngularJS ng-click不调用作用域上的函数
- 如何通过ng-click将其传递到角度函数
- Angular JS ng-click在通过另一个javascript函数加载HTML时不起作用
- 如何在 ng-click 上堆叠多个操作/函数
- 更改 NG-Click 函数
- AngularJS将$scope变量传递给ng-click函数
- 使 ng-click 函数通用以添加行
- CSS "float: none;"阻止Javascript函数"ng-click&quo