javascript - Foundation Zurb DropDown 不适用于 ng-class

标签 javascript angularjs zurb-foundation

我在下拉菜单中添加了 ng-class,为导航点提供不同的类。现在,当我将鼠标悬停时,子项目不再工作(只需单击子项目就会打开)。

<section class="top-bar-section para">             
      <ul class="left para">
        <li class="divider2"></li>
        <li ng-class="{'has-dropdown para divider2':navigation.type == 'Sub', 'nav_button divider2':navigation.type == 'Main'}" ng-repeat="navigation in nav.links">

          <a ng-if="navigation.type == 'Main'" href="{{navigation.link1}}" class="para">{{navigation.name}}</a>
          <a ng-if="navigation.type == 'Sub'" href="#" class="para">{{navigation.name}}</a>
          <ul ng-if="navigation.type == 'Sub'" class="dropdown">              
            <li ng-repeat="subitem in navigation.subitems"><a href="{{subitem.link}}">{{subitem.name2}}</a></li>                
          </ul> 

        </li>
      </ul>
    </section>

使用此代码,它可以工作 - 但没有子菜单的导航点有错误的类

 <section class="top-bar-section para">             
      <ul class="left para">
        <li class="divider2"></li>
        <li class="has-dropdown divider2" ng-repeat="navigation in nav.links">

          <a ng-if="navigation.type == 'Main'" href="{{navigation.link1}}" class="para">{{navigation.name}}</a>
          <a ng-if="navigation.type == 'Sub'" href="#" class="para">{{navigation.name}}</a>
          <ul ng-if="navigation.type == 'Sub'" class="dropdown">              
            <li ng-repeat="subitem in navigation.subitems"><a href="{{subitem.link}}">{{subitem.name2}}</a></li>
            <!--<li><a href="#">Dropdown Option</a></li>      -->      
          </ul> 

        </li>
      </ul>
    </section>

这是我的 JSON 文件和 Controller 。

{
"projectTitle": "Test",
"menutitlemobile": "Menu",
"links": [
        {
        "type": "Sub",
        "name": "Menu1",
        "subitems": [{
            "name2": "Sublink1",
            "link": "http://www.google.com"
            }, 
            {
            "name2": "Sublink2",
            "link": "http://www.google.com"
            }]
        },

        {
        "type": "Main",
        "name": "Menu2",
        "link1": "http://www.google.com"
        }

]}
<小时/>
app.controller('NavCtrl', function($scope, $http) {

$http({
      method: 'GET',
      url: 'navigation.json',
      data: 'json',
      cache: 'false'       

      }).success(function (data) {              

          $scope.nav = data;
      })

        .error(function(data, status) {

          console.error('Repos error', status, data);
        });});

最佳答案

我稍微编辑了你的plunker,看看http://plnkr.co/edit/CZiKTApTbkc3gnzy5eMl?p=preview

确保仅加载 AngularJS 一次,并且 jQuery 在 AngularJS (index.html) 之前加载。

app.js 中,我在加载数据后添加了 $timeout 。通过这种“超出范围”的操作,它似乎可以发挥作用。

不太好,但它有效;)

关于javascript - Foundation Zurb DropDown 不适用于 ng-class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223278/

相关文章:

javascript - AngularJS 将服务中的变化值绑定(bind)到范围值

angularjs - 用于检索空对象的 REST API 端点

html - 单击事件后 Foundation 5 按钮类中断(在 webkit 浏览器中)

javascript - 在 React 中,如何将对象数组作为查询字符串传递到端点 url?

Javascript:生成范围内的随机数,避免前两个

javascript - 翻转 d3js svg 行

javascript - 当鼠标移开时保持下拉菜单打开?

php - AJAX仅在IE中加载一次

angularjs - 将 ngModel 绑定(bind)到具有隔离范围的 AngularJS 指令

javascript - Zurb 基金会 : drop up menus with bottom fixed navbar (rather than dropdown)