2015-06-18 43 views
1

ng-if在HTML模板:如何在AngularJS的多個視圖中使用一個函數?

<div ng-if="isImage(item._file) == false"> 

所以,方法isImage()位於電流控制器上。我怎樣才能做普通的方法isImage(),我不做重複每個控制器,並可以從視圖調用?

+0

服務定義,然後調用該方法 –

+0

如何從模板調用? – Caur

回答

0

我可以告訴你2種方式來做到這一點。 最簡單的,但不理想的方式: 在全局控制器或在您的應用程序運行段:

$rootScope.isImage = function() { 
    ... 
    return true; 
} 

rootScope約束變量是隨時隨地訪問你的應用程序中,這樣你就不必讓他們在你的控制器。

正確的,稍微複雜一點的方法是使用自定義指令。 我沒有測試過這一點,但沿着線的東西:

angular.module('myApp').directive("isImage", function() { 
return { 
    restrict: 'E', 
    scope: { 
     src: '=src' 
    }, 
    link: function (scope, element, attrs) { 
     if (!isImage(scope.src)) { //your logic for deciding if it's an image here 
      element.hide(); 
     } 
    } 
}; 

});

,並在你的HTML:

<is-image src="myImage"></is-image> 
相關問題