2016-05-29 28 views
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(); 

     } 

    } 

}]); 

我嘗試了通過「$窗口」傳遞給指令參數,也使用範圍,但它不工作。它顯示未定義的「燈箱」。

+0

爲什麼你寫的'** Lightbox'?看起來你的代碼中有語法錯誤。如果你有一個全球性的,它不應該拋出錯誤。這些腳本的執行順序是什麼? –

+0

**燈箱不是事實。我只是從stackoverflow編輯器中點擊「B」。我的Lightbox腳本在productBuyers指令之前運行。 –

回答

0

嘗試window.Lightboxwindow.Lightbox.openModal = function(...)