angularjs
  • angular-ng-if
  • 2017-08-21 11 views 0 likes 
    0

    正しいhtmlマークを表示するための関数を呼び出す場合があります。私がチェックし、右のHTMLマークアップを返します「showField(名前)」と呼ばれる機能にすべてのngifを結合したいと思いますng-ifの関数呼び出し

    <li ng-repeat="data in myBlock.myData"> 
     
        <div ng-if="data.type=='Jonh'"> 
     
         <div class='row'> 
     
          <div class='col'> 
     
          this is text for Jonh 
     
          </div> 
     
         </div> 
     
        </div> 
     
        <div ng-if="data.type=='Roy'"> 
     
         <div class='row'> 
     
         <div class='col'> 
     
          Roy will have a different text 
     
         </div> 
     
         </div> 
     
        </div> 
     
        <div ng-if="data.type=='Kevin'" > 
     
         <div class='row'> 
     
          <div class='col'> 
     
          Kevin text is also different 
     
          </div> 
     
         </div> 
     
        </div> 
     
    </li>

    :ここに私の現在のコードです。どうすればそれができますか?私の最終的なHTMLマークアップは、次のようなものになります。あなたが達成しようとしている何

    <li ng-repeat="data in myBlock.myData"> 
        <div ng-if="showField(data.type)"> 
         //Not sure how to implement this part 
        </div>      
    </li> 
    
    +0

    あなたのマークアップhtmlをテンプレートとして定義し、 'ng-if'ディレクティブを使って正しいテンプレートを組み込みます。 –

    答えて

    0

    が正しい方法であるが、単にコントローラ内のメソッドを宣言し、ブール値を返す

    $scope.showField = function(yourdata){ 
        //put the logic 
        return true/false; 
    } 
    
    +0

    私はブール値ではなくhtmlマークを返す必要があると信じています。あなたはもう少し説明できますか? – loveprogramming

    2

    HTML:

    <li ng-repeat="data in myBlock.myData"> 
        <div ng-if="checkValidDataType(data.type)"> 
         <div class='row'> 
          <div class='col'> 
          <label class='title' for="{{data.name}}">{{data.label}}</label> 
          <span class="{{data.type.toLowerCase() + 'Class'}}">This is {{data.type}}</span>     
          </div> 
         </div> 
        </div>      
    </li> 
    

    JS:

    $scope.checkValidDataType = function(type) { 
        return type === "Roy" || type === "Kevin" || type === "Jonh"; 
    } 
    
    関連する問題