我有以下 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);
}
关于javascript - 将函数表达式存储在 angularjs 指令的链接函数中并通过 ng-click 使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792240/