Angularjs 在$mdSidenav上明确输入了角度材质错误

Angularjs 在$mdSidenav上明确输入了角度材质错误,angularjs,typescript,angular-material,Angularjs,Typescript,Angular Material,只是想弄清楚为什么在切换$mdSidenav时出错。这不是一个破坏性的错误,因为代码按其应该的方式运行,但我觉得我可能在typescript中错误地实现了它 我添加了明确的类型和角度的材料与一个简单的控制器像这样 module app.layout { interface IMenuModel { menuItems: app.layout.IMenuItems[]; toggleSidenav(menuId: string): void; } class MenuCtrl

只是想弄清楚为什么在切换
$mdSidenav
时出错。这不是一个破坏性的错误,因为代码按其应该的方式运行,但我觉得我可能在typescript中错误地实现了它

我添加了明确的类型和角度的材料与一个简单的控制器像这样

module app.layout {
interface IMenuModel {
    menuItems: app.layout.IMenuItems[];
    toggleSidenav(menuId: string): void; 
}

class MenuCtrl implements IMenuModel {

    menuItems: app.layout.IMenuItems[];

    constructor(private $mdSidenav: ng.material.ISidenavObject) {
        var vm = this;
    }

    toggleSidenav(menuId: string): void {
        this.$mdSidenav(menuId).toggle();
        console.log(menuId);
    }
  }

  angular.module("app").controller("menuCtrl", MenuCtrl);
}
代码的核心部分被编译为

     MenuCtrl.prototype.toggleSidenav = function (menuId) {
          this.$mdSidenav(menuId).toggle();
          console.log(menuId);
     };
html是

<md-button ng-click="vm.toggleSidenav('left')" hide-gt-sm class="md-icon-button"> 
  menu  
</md-button>
换衣服

constructor(private $mdSidenav: ng.material.ISidenavObject) {


您可以看到相应的。

并且它可以工作。。。当然,因为它返回
ISidenavObject
。干杯
constructor(private $mdSidenav: ng.material.ISidenavObject) {
constructor(private $mdSidenav: ng.material.ISidenavService) {