angularjs:为什么我的指令作为ng-class指定的类不被识别?

时间:2013-09-10 09:18:57

标签: javascript angularjs

plunker

我需要将指令包含在一个类中:

我需要使用这种模式:

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

但不幸的是,该指令只能在下面的模式中注册(在上面的plunker链接中尝试):

class='some-directive'

主要问题是我想只将指令注册(包含)到我的上下文菜单的“rename”选项中:

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

我将如何实现这一目标?..更难的是我想在renameDirective中添加一个参数..也许是这样的:

ng-class="{'renameDirective :directiveArg ':(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>

我将这个半重复的帖子作为我的参考here

1 个答案:

答案 0 :(得分:1)

<button class="{{menu.name=='Rename' && 'some-directive'}}">button2</button>