2016-01-13 37 views
0

ppOnDone是一個可選的回調函數。我想檢測它是否沒有提供,並隱藏一些相關的控制。我如何檢測天氣表達式是否爲空?檢測傳遞給指令的空表達式

ppReminderCard.directive('ppAdminEditor', [ 
function(){ 
    return { 
     scope: { 
      ppData: '=', 
      ppOnDone: '&' 
     }, 
     controller: 'adController', 
     controllerAs: 'ctrl', 
     restrict: 'E', 
     templateUrl: '/apps/components/ppAdminEditor/ppAdminEditor.html', 
     replace: true, 
    }; 
}]); 

回答

0

應該能夠使用:

ng-hide="!ctrl.ppOnDone" 
+0

它從來不是空的。這只是一個空的回調函數。 – skfd

+0

在這種情況下,您需要另一個標記變量或屬性或服務注入 – charlietfl

+0

這就是我所做的不是但它不是很優雅。 – skfd

0

注入$attrs本地到您的控制器和用於測試的屬性:

angular.module('myApp').directive('ppAdminEditor', 
function(){ 
    return { 
     scope: { 
      ppData: '=', 
      ppOnDone: '&' 
     }, 
     controller: function($attrs) { console.log ($attrs); 
      this.hasPpOnDone = ($attrs.ppOnDone) ? true : false; 
       }, 
     controllerAs: 'ctrl', 
     restrict: 'E', 
     template: '<p>{{ctrl.hasPpOnDone}}</p>', 
     replace: true, 
    }; 
}); 

JSFiddle Demo