【问题标题】:Issue with drop down menu and tabs in angular下拉菜单和角度选项卡的问题
【发布时间】:2016-06-10 14:16:18
【问题描述】:

我正在使用带有 angularjs 的 MDL 选项卡。选项卡定义为:

<header class="mdl-layout__header">
    <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
        <a ng-href="#fixed-tab-1" ng-click="activateTab('Assets')"  class="mdl-layout__tab">Asset Protection</a>
        <a ng-href="#fixed-tab-2" ng-click="activateTab('Copies')"  class="mdl-layout__tab is-active">Asset Copies</a>
        <a ng-href="#fixed-tab-3" ng-click="activateTab('Savings')" class="mdl-layout__tab">Asset Savings</a>
        <div class="mdl-layout-spacer"></div>
    </div>
</header>

标签1中的表格是:

                        <tbody>
                            <tr ng-repeat="x in restdata | filter:search | orderBy:btn:reverse">
                                <td class="mdl-data-table__cell--non-numeric mdl-typography--thin">{{ x.asset }}</td>
                                <td class="mdl-data-table__cell--non-numeric">
                                    <i id="ttadd01{{$index}}" class="material-icons icon-border md-15" 
                                       ng-click="tableAction(x.id)" ng-class="{ 'select600': x.actionselected}">
                                        add
                                    </i>
                                    <div class="mdl-tooltip" for="ttadd01{{$index}}">Add</div>
                                    <i  id="menu-action01{{$index}}" ng-click="tableList(x.id)" class="material-icons icon-border md-15">more_vert</i>
                                    <div ng-show=(x.selected)">
                                        <ul class="mdl-menu mdl-menu--top-left mdl-js-menu mdl-js-ripple-effect" for="menu-action01{{$index}}">
                                            <li ng-click="tableListAction($index)" class="mdl-menu__item" 
                                                ng-repeat="act01 in tableListActions"> 
                                                <i class="material-icons md-15">{{ act01.icon }}</i>{{ act01.name }}
                                            </li>
                                        </ul>
                                    </div>
                                    <div class="mdl-tooltip" for="menu-action01{{$index}}">More Options</div>
                                </td>
                            </tr>
                        </tbody>

在第二个标签上,非常相似:

                        <tbody>
                            <tr ng-repeat="y in restdata | filter:search | orderBy:btn:reverse">
                                <td class="mdl-data-table__cell--non-numeric mdl-typography--thin">{{y.rental}}</td>
                                <td class="mdl-data-table__cell--non-numeric">
                                    <i id="ttadd02{{$index}}" class="material-icons icon-border md-15" 
                                       ng-click="tableAction(y.id)" ng-class="{ 'select600': y.actionselected}">
                                        add
                                    </i>
                                    <div class="mdl-tooltip" for="ttadd02{{$index}}">Add</div>
                                    <i  id="menu-action02{{$index}}" ng-click="tableList(y.id)" class="material-icons icon-border md-15">more_vert</i>
                                    <div ng-show="(y.selected)">
                                        <ul class="mdl-menu mdl-menu--top-left mdl-js-menu mdl-js-ripple-effect" for="menu-action02{{$index}}">
                                            <li ng-click="tableListAction($index)" class="mdl-menu__item" 
                                                ng-repeat="act02 in tableListActions"> 
                                                <i class="material-icons md-15">{{ act02.icon }}</i>{{ act02.name }}
                                            </li>
                                        </ul>
                                    </div>
                                    <div class="mdl-tooltip" for="menu-action02{{$index}}">More Options</div>
                                </td>
                            </tr>
                        </tbody>

对于这两个选项卡,数据都是使用 REST 调用提取的(并正确显示)。没有正确显示的是下拉菜单 menu-action01 和 02。在任何选项卡的第一个条目上都显示得很好。在标签更改时,它会停止显示。我已验证 .selected 在 javascript 中设置正确。

有什么想法吗?谢谢。

【问题讨论】:

    标签: jquery angularjs material-design angular-material


    【解决方案1】:

    您能否在this simple example 上验证您的案例,不包含样式和 REST 调用?

        <div ng-show="(y.selected)">
          <ul class="mdl-menu mdl-menu--top-left mdl-js-menu mdl-js-ripple-effect" for="menu-action02{{$index}}">
            <li ng-click="tableListAction($index)" class="mdl-menu__item" ng-repeat="act02 in tableListActions">
              <i class="material-icons md-15">{{ act02.icon }}</i>{{ act02.name }}
            </li>
          </ul>
        </div>
    

    JavaScript 片段:

        $scope.tableList = function(id){
      angular.forEach($scope.restdata, function(value, key) {
        value.selected = false;
      });
        $scope.restdata[id].selected = true;
    };
    

    【讨论】:

    • 亚历山大很好的例子。我可以看到您的示例代码可以正常工作。我试图在我的项目文件中发布相同的代码并遇到项目设置方式(路由等)的问题。我会解决这些问题。您的样品有很大帮助。谢谢。
    • 在我的环境中,活动标签只打印静态文本,标签导航导致页面未找到并被转移到主页。
    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2022-11-25
    • 2021-08-26
    • 2015-06-15
    • 1970-01-01
    相关资源
    最近更新 更多