2017-02-04 9 views
14

की संपत्ति खुली() को पढ़ नहीं सकता है, मैं कोणीय सामग्री डिजाइन मेनू को काम करने की कोशिश कर रहा हूं, लेकिन मुझे लगता है कि एनजी-क्लिक द्वारा इंजेक्शन किए जाने वाले $ mdMenu का उपयोग करने में सक्षम नहीं है।

मेरे HTML मार्कअप:

<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> 

कोणीय नियंत्रक:

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

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

contoller ठीक से इंजेक्शन हो जाता है, लेकिन मैं त्रुटि मिलती है, जब मैं चलाने

TypeError: Cannot read property 'open' of undefined 

किसी को भी पता है कि कैसे इसे ठीक करने के लिए? धन्यवाद

उत्तर

28

के बजाय mdMenu, पारित mdOpenMenu

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

नियंत्रक:

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

DEMO

+7

एक आकर्षण thx की तरह काम किया। क्या आप जानते हैं कि यह क्यों काम करता है और प्रलेखन में प्रदान किया गया उदाहरण नहीं है? कैसे $ mdMenu परिभाषित नहीं किया गया है? – Jason

+0

मुझे लगता है कि यह बदल गया था और डेमो अभी भी कोणीय सामग्री के पुराने संस्करण का उपयोग कर रहा है। – user3413723

1

"$ mdOpenMenu" has been replaced "$ mdMenu.open" द्वारा और अब इसे बहिष्कृत किया गया है। कोणीय सामग्री के नवीनतम संस्करण का प्रयोग करें और यह ठीक काम करेगा।

enter image description here

संबंधित मुद्दे