【问题标题】:`ng-click="$mdMenu.open($event)"` not working in angular material`ng-click="$mdMenu.open($event)"` 不适用于角度材料
【发布时间】:2017-11-17 00:07:32
【问题描述】:

我在我的 Angular 应用程序中添加了一个材质组件,但点击不起作用。

参考网址:https://material.angularjs.org/latest/demo/menu

错误:

在“位置模式演示”部分,ng-click="$mdMenu.open($event)" 不起作用。我没有在文档中看到我必须添加类似 $mdMenu 的东西作为依赖项。类似的组件也不起作用。

<div layout="column" flex-xs="100" flex-sm="100" flex="33" layout-align="center center">

        <p><code>md-position-mode="target-right target"</code></p>
        <md-menu md-position-mode="target-right target" >
          <md-button aria-label="Open demo menu" class="md-icon-button" ng-click="$mdMenu.open($event)">
            <md-icon md-menu-origin md-svg-icon="call:portable-wifi-off"></md-icon>
          </md-button>
          <md-menu-content width="4" >
            <md-menu-item ng-repeat="item in [1, 2, 3]">
              <md-button ng-click="ctrl.announceClick($index)">
                  <div layout="row" flex>
                    <p flex>Option {{item}}</p>
                    <md-icon md-menu-align-target md-svg-icon="call:portable-wifi-off" style="margin: auto 3px auto 0;"></md-icon>
                  </div>
              </md-button>
            </md-menu-item>
          </md-menu-content>
        </md-menu>

</div>

【问题讨论】:

  • 请添加您的代码。没有任何代码,没有人可以帮助您。
  • 它只是我添加的链接中的相同组件。只需我复制 n 粘贴组件并将相关代码添加到控制器但不工作。依赖项已经注入,我正在完美地使用其他组件。
  • 所以只需复制代码并将其粘贴到问题上!!
  • 添加了相关块。这个ng-click="$mdMenu.open($event)" 不起作用。在 js 代码中它没有显示任何依赖关系。
  • 您是否遇到任何错误?您的代码应该可以正常工作。这是codepen(我不得不将其更改为使用 Material 图标。)

标签: javascript angularjs angular-material


【解决方案1】:

https://codepen.io/anon/pen/xPpGeW

确保为正在阅读的文档加载了正确版本的角度材质库,材质库中的内容经常发生变化。

<html lang="en" >
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Angular Material style sheet -->
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.4/angular-material.css">
</head>
<body ng-app="BlankApp" ng-cloak>
  <!--
    Your HTML content here
  -->  
  
  <!-- Angular Material requires Angular.js Libraries -->
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>

  <!-- Angular Material Library -->
  <script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.4/angular-material.min.js"></script>
  
  <!-- Your application bootstrap  -->
  <script type="text/javascript">    
    /**
     * You must include the dependency on 'ngMaterial' 
     */
    angular.module('BlankApp', ['ngMaterial']);
  </script>
  
  <md-menu>
   <!-- Trigger element is a md-button with an icon -->
   <md-button ng-click="$mdMenu.open($event)" class="md-icon-button" aria-label="Open sample menu">
    Menu
     <md-icon md-font-icon="icon-settings"></md-icon>
   </md-button>
   <md-menu-content>
     <md-menu-item><md-button ng-click="doSomething()">Do Something</md-button></md-menu-item>
   </md-menu-content>
  </md-menu>
</body>
</html>

<!--
Copyright 2016 Google Inc. All Rights Reserved. 
Use of this source code is governed by an MIT-style license that can be in foundin the LICENSE file at https://material.angularjs.org/license.
-->

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 2017-12-29
    • 2018-11-02
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多