2017-02-04 20 views
14

özellik open() özelliği okunamıyor Angular Material Design menüsünü çalışmaya çalışıyorum ancak ng tıklama ile enjekte edilmesi gereken $ mdMenu'yu kullanamıyorum.

Benim HTML işaretleme:

<div layout="column" layout-fill ng-controller="AuthControl"> 
    <md-toolbar ng-controller="navigationControl"> 
     <div ng-controller="menu as ctrl"> 
      <md-menu> 
      <md-button class="md-icon-button" ng-click="ctrl.open($mdMenu, $event)"> 
       <md-icon>menu</md-icon> 
      </md-button> 
      <md-menu-content width="4"> 
       <md-menu-item> 
        <md-button> 
         <md-icon>account_circle</md-icon> 
        </md-button> 
       </md-menu-item> 
      </md-menu-content> 
     </md-menu> 
     </div> 
    </md-toolbar> 
</div> 

Eğik Denetleyici:

controllers.controller('menu', function menuControl($mdDialog) { 
    var originatorEv; 

    this.open = function($mdMenu, ev) { 
    originatorEv = ev; 
    $mdMenu.open(ev); 
    }; 
}); 

kontrolörü düzgün enjekte alır ama çalıştırdığınızda Hata alıyorum

TypeError: Cannot read property 'open' of undefined 

herkes biliyor mu Bunu düzeltmek için? Teşekkür

cevap

28

yerine mdMenu, pas mdOpenMenu

<md-button aria-label="menu" class="md-fab md-mini md-primary" ng-click="ctrl.openMenu($mdOpenMenu, $event)"> 

Denetleyici:

this.openMenu = function($mdOpenMenu, ev)  { 
     originatorEv = ev; 
     $mdOpenMenu(ev); 
    }; 

DEMO

+7

Bir çekicilik gibi çalıştık. Bunun neden çalıştığını ve belgelerindeki örneklerin neden olmadığını biliyor musunuz? Nasıl $ mdMenu tanımlanmadı? – Jason

+0

Bahse girerim değişti ve demo hala eski bir açısal malzemeyi kullanıyor. – user3413723

1

"$ mdOpenMenu" has been replaced "$ mdMenu.open" ile şimdi ve kullanımdan kaldırılmıştır. Açısal Malzemenin en son sürümünü kullanın ve iyi çalışır.

enter image description here

İlgili konular