0
次のようなグローバル変数があります。AngularJSアクセスグローバル変数ディレクティブ
var Lightbox = {};
............
Lightbox.openModal = function (newImages, newIndex, modalParams) {
...............
}
この変数には、次のような指示の下でアクセスしたいと思います。
app.directive('productBuyers', ['Product', function(Product) {
return {
restrict : 'E',
scope : {},
template : '<div>' +
'<p class="product-buyers-f bold" ng-show="photos.length">Others:</p>' +
'<
'<div class="product-buyer square" ng-click="openLightboxModal($index)" ng-repeat="photo in photos | limitTo:3" ng-style="{\'background-image\':\'url(\' + photo.image + \')\'}"></div>' +
'<div class="clear"></div>' +
'</div>' +
'</div>',
link : function($scope, element, attrs) {
$scope.photos = [];
function getImages() {
}
$scope.openLightboxModal = function (index) {
Lightbox.openModal($scope.photos, index);
};
getImages();
}
}
}]);
"$ window"をディレクティブパラメータに渡してスコープを使用してみましたが、動作しません。未定義の「ライトボックス」を表示しています。
window.Lightbox.openModal = function(...)
はなぜ書きましたの?あなたのコードに構文エラーがあるように見えます。あなたがグローバルを持っているなら、それはエラーを投げるべきではありません。これらのスクリプトの実行順序は? –**ライトボックスは事実ではありません。私はちょうどstackoverflowエディタから "B"をクリックしました。私のLightboxスクリプトはproductBuyersディレクティブの前に実行されています。 –