【发布时间】:2014-11-02 02:40:32
【问题描述】:
我正在开发一个同时使用 angularJS 和 Foundation 的项目,因此我正在使用 Angular Foundation 项目来让 Foundation 的所有 javascript 部分正常工作。我刚从 0.2.2 升级到 0.3.1,导致 top bar 指令出现问题。
以前,我可以使用 has-dropdown 类来指示其中包含下拉菜单的“顶部栏”菜单项。由于菜单项是从列表中获取的,并且只有一些具有实际的下拉菜单,因此我将使用以下代码:
<li ng-repeat="item in ctrl.items" class="{{item.subItems.length > 0 ? 'has-dropdown' : ''}}">
但是,最新版本需要has-dropdown 的属性而不是类。我尝试了几种解决方案来有条件地包含此属性,但似乎都不起作用:
<li ng-repeat="item in ctrl.items" has-dropdown="{{item.subItems.length > 0}}">
这给了我一个真或假的值,但在这两种情况下,指令实际上都是活动的。使用 ng-attr-has-dropdown 也是如此。
this answer 使用一种有条件地应用一个或另一个元素的方法,一个有指令属性,一个没有指令属性。如果同一个元素是持有ng-repeat 的元素,那将不起作用,所以我想不出任何方法可以使我的代码示例起作用。
this answer我不明白。这适用于我吗?如果是这样,大致如何工作?由于项目的设置,到目前为止我已经编写了几个控制器和服务,但到目前为止我几乎没有任何自定义指令的经验。
简而言之,这可能吗?如何实现?
【问题讨论】:
-
我认为您必须使用一个指令,根据您的条件返回
<li>和has-dropdown。我正在寻找答案。我还没有这样做,但这听起来像是我最终会遇到的事情 -
我找到了这个答案,现在我想为什么它不适合你? jsfiddle.net/gleezer/sCC72/2 它应该可以工作
-
感谢 Narek,但您并没有真正阅读我的问题。我的问题比这复杂一点。
标签: angularjs zurb-foundation ng-repeat angular-foundation