2017-05-12 15 views
0

このようにNG・リピートで使用するカスタム要素ディレクティブを構築する方法がある場合、私は思ったんだけど:ngのリピートおよび多型ディレクティブ

<div class="list"> 
     <my-custom-directive class="item item-icon-right" ng-repeat="a in concepts"> 
      <p>{{::a.label}}</p> 
      <i class="icon ion-forward muted"></i> 
     </my-custom-directive> 
</div> 

my-custom-directiveアンカー自体をコンパイルする必要がありますa.hrefが存在する場合、段落にはありません。

問題は基本的に単なるデザインになります:私はhrefを持たない項目もいくつか持っていますが、それらはまだリストにあるはずです。 Ionic1では、divリストやaリストを作成できますが、リストデザインを破ることなく混ざらないようです。

+0

ディレクティブの 'transclude'属性は見えましたか? –

+0

カスタムディレクティブを作成するのは大変なことでしょうか?それに応じて2つの 'ng-show'をチェックして表示することはできませんか? – tanmay

+0

@tanmayそれは突然変異する必要がある反復自体の要素であり、一部の子ではありません。 'div.list'と' a.item'または 'div.item'の間にDOM要素を追加すると、Ionic1のリストデザインが壊れてしまいます。 – alfredopacino

答えて

1

もちろん可能です。このような何か:

<my-custom-dir ng-repeat="a in concepts"></my-custom-dir> 

、ディレクティブはまた、のような

app.directive('myCustomDir', function() { 
    return { 
    restrict: 'E', 
    templateUrl: 'custom.html' 
    } 
}) 

そして、custom.htmlテンプレート、

<p ng-hide="a.href">{{::a.label}}</p> 
<a ng-href="{{a.href}}" ng-show="a.href">{{::a.label}}</a> 
<i class="icon ion-forward muted"></i> 

であり、私は次のようにダミーのオブジェクトを持っている$scope.conceptsを保ち、

$scope.concepts = [{ 
    href: 'eample.com', 
    label: 'example' 
    }, { 
    label: 'example1' 
    }, { 
    href: 'eample2.com', 
    label: 'example2' 
    }] 

working example

が、私はあなたの.listng-repeatdiv.itemを持つことができるはずだと思います。そして、div.itemには、あなたが望むものを持っていなければなりません(ionic1がそれをどのように扱うかはわかりません)

+1

ええ、ありがとう。私は確かに、私は、私がもっと掘り下げることをIonicが扱うことができると思う – alfredopacino