2

プランカー

クラスとしてディレクティブを含める必要があります。

そして、私はこのパターンを使用する必要があります:

ng-class='{"some-directive":1'}

残念ながら、ディレクティブは以下のパターンでしか登録できません (上記の plunker リンクで試してください)。

class='some-directive'

問題は、コンテキスト メニューの「名前の変更」オプションにのみディレクティブを登録 (インクルード) したいことです。

<li ng-class="{'renameDirective':(menu.name == 'Rename')}" ng-repeat="menu in contextmenu

どうすればそれを達成できますか?..もっと難しいのは、 renameDirective に引数を追加したいということです..おそらく次のように:

ng-class="{'renameDirective: ディレクティブArg':(menu.name == 'Rename')}"

次のようなものです:<div renameDirective="directiveArg"></div>

アップデート:

冗長な回避策として、以下のコードで問題を一時的に解決できます。さらなる改善のために開かれています (ng-class ディレクティブを利用することが最善、最短/クリーンなアプローチだと思います)。

<ul>
 <li ng-repeat="menu in contextmenu">
  <div ng-switch on="menu">
    <div ng-switch-when="Rename">
      <button some-directive="Rename">button{{$index}}</button>
    </div>
    <div ng-switch-default>
      <button>button{{$index}}</button>
    </div>
  </div>
 </li>
</ul>

ここでの参照として、この半重複の投稿がありました

4

1 に答える 1

1
<button class="{{menu.name=='Rename' && 'some-directive'}}">button2</button>
于 2013-09-10T09:24:00.367 に答える