在 $mdSidenav 上肯定输入 angular material 错误
Definitely typed with angular material error on $mdSidenav
只是想弄清楚为什么我在切换 $mdSidenav
时遇到错误。这不是一个破坏性错误,因为代码按预期运行,但我觉得我可能在打字稿中错误地实现了它。
我添加了 definitely typed 和 angular material 以及像这样的简单控制器
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>
所以这在浏览器中有效,菜单会切换。但是 IDE 中有一个错误指出
如果您愿意,我觉得我没有按照 "typescript" 的方式实施。明确输入的 ng.material.ISidenavObject
看起来像这样
interface ISidenavObject {
toggle(): angular.IPromise<void>;
open(): angular.IPromise<void>;
close(): angular.IPromise<void>;
isOpen(): boolean;
isLockedOpen(): boolean;
}
只是改变
constructor(private $mdSidenav: ng.material.ISidenavObject) {
至
constructor(private $mdSidenav: ng.material.ISidenavService) {
可以看到对应的definition.
只是想弄清楚为什么我在切换 $mdSidenav
时遇到错误。这不是一个破坏性错误,因为代码按预期运行,但我觉得我可能在打字稿中错误地实现了它。
我添加了 definitely typed 和 angular material 以及像这样的简单控制器
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>
所以这在浏览器中有效,菜单会切换。但是 IDE 中有一个错误指出
如果您愿意,我觉得我没有按照 "typescript" 的方式实施。明确输入的 ng.material.ISidenavObject
看起来像这样
interface ISidenavObject {
toggle(): angular.IPromise<void>;
open(): angular.IPromise<void>;
close(): angular.IPromise<void>;
isOpen(): boolean;
isLockedOpen(): boolean;
}
只是改变
constructor(private $mdSidenav: ng.material.ISidenavObject) {
至
constructor(private $mdSidenav: ng.material.ISidenavService) {
可以看到对应的definition.