0

我有一個指令顯示<md-card>,但我希望通過僅在指令的屬性isUsertrue時顯示一個部件(圖標)才能使其在整個應用中更加可重用。隱藏布爾屬性指令的一部分

但是好像目錄沒有得到從我用它在我的網頁...如果我在{{ isUser }}使用ng-hide屬性它顯示了,不管是什麼類型的數據我發送給它,它似乎。如果我使用ng-show它永遠不會顯示:

<md-card md-colors="::{backgroundColor: '{{theme}}-primary-900'}"> 
    <md-card-title> 
     <md-card-title-media ng-show="{{isUser}}"> 
      <div class="md-media-sm card-media" layout md-colors="::{background: '{{theme}}-accent-700'}"> 
       <md-icon md-svg-icon="resources/img/profile_white_48.svg"></md-icon> 
      </div> 
     </md-card-title-media> 
     <md-card-title-text> 
      <span class="md-headline">{{name}}</span> 
      <span class="md-subhead description"><span class="lead orange">Sentinel Number: {{ ptsnumber }}</span></span> 
     </md-card-title-text> 
    </md-card-title> 
</md-card> 

指令:

angular.module("card", []) 
     .directive("card", function() { 
      return { 
       restrict: 'E', 
       templateUrl: 'app/shared/CARD.TMPL.HTML', 
       scope: { 
        name: '@', 
        theme: '@', 
        ptsnumber: '@', 
        isUser: '@' 
       }, 
       controller: function ($scope) { 
        $scope.theme = $scope.theme || 'default'; 
       } 
      } 
     }) 

用法:

<card ng-repeat="person in vm.persons | unique: 'PTSNumber'" 
        name="{{person.Firstname}} {{person.Surname}}" theme="user" 
        ptsnumber="{{ person.PTSNumber }}" 
        isUser="{{ true }}" 
        ng-click="vm.setUser(person.PTSNumber, person.Firstname, person.Surname, $event)"></card> 

回答

1

所以,我不知道哪個角度版本您使用的,這是您的帖子中未提及,但所有這些參數最好定義爲<。 這允許您傳遞角度表達式。

然後刪除所有的插值,你不需要它們。

<card ng-repeat="person in vm.persons | unique: 'PTSNumber'" 
        name="person.Firstname + ' ' + person.Surname" theme="user" 
        ptsnumber="person.PTSNumber" 
        is-user="true" 
        ng-click="vm.setUser(person.PTSNumber, person.Firstname, person.Surname, $event)"></card> 

然後在你的HTML你有一個問題:

isUser應該是用戶(在上面的代碼已經改變)

而在你的NG-節目刪除插值以及:

ng-show="isUser" 

所有這些都可以解決您的問題。

我希望這可以幫助