是否有 isOpen 属性 of <md-menu> 指令?
Is there an isOpen property of <md-menu> directive?
angular-material
中的 <md-menu>
指令是否有一个 isOpen
属性(或类似的)可以收听或绑定?
注意:我最初的问题很长而且过于复杂,但 @Sarhanis 让我意识到我问错了问题。
您的示例存在较大的应用程序设计问题。
您应该避免在 Angular 项目中使用 jQuery。通过直接在 DOM 上工作,jQuery 扰乱了 Angular 的设计运行方式。
如果想给HTML元素添加classes之类的东西,可以结合使用普通的class属性和ngClass。这是 ngClass 上的一些 doco:https://docs.angularjs.org/api/ng/directive/ngClass
应该使用 ngShow 或 ngIf 来显示和隐藏元素:
https://docs.angularjs.org/api/ng/directive/ngShow
https://docs.angularjs.org/api/ng/directive/ngIf
它们应该处理您在控制器中定义的范围变量。
感谢 @Sarhanis,我能够找到如何将操作绑定到菜单打开和关闭事件。在打开和关闭菜单上,Angular Material 广播 $mdMenuOpen
,分别 $mdMenuClose
事件:
$scope.$on('$mdMenuOpen', function(event, menu) {
console.log('opening menu...', event, menu);
});
$scope.$on('$mdMenuClose', function(event, menu) {
console.log('closing menu...', event, menu);
});
我遇到了同样的情况,当我尝试你的回答时,我发现 <md-menu>
的 $scope
里面有一个 $mdMenuIsOpen
所以使用它不需要你绑定到一个事件。
angular-material
中的 <md-menu>
指令是否有一个 isOpen
属性(或类似的)可以收听或绑定?
注意:我最初的问题很长而且过于复杂,但 @Sarhanis 让我意识到我问错了问题。
您的示例存在较大的应用程序设计问题。
您应该避免在 Angular 项目中使用 jQuery。通过直接在 DOM 上工作,jQuery 扰乱了 Angular 的设计运行方式。
如果想给HTML元素添加classes之类的东西,可以结合使用普通的class属性和ngClass。这是 ngClass 上的一些 doco:https://docs.angularjs.org/api/ng/directive/ngClass
应该使用 ngShow 或 ngIf 来显示和隐藏元素: https://docs.angularjs.org/api/ng/directive/ngShow https://docs.angularjs.org/api/ng/directive/ngIf
它们应该处理您在控制器中定义的范围变量。
感谢 @Sarhanis,我能够找到如何将操作绑定到菜单打开和关闭事件。在打开和关闭菜单上,Angular Material 广播 $mdMenuOpen
,分别 $mdMenuClose
事件:
$scope.$on('$mdMenuOpen', function(event, menu) {
console.log('opening menu...', event, menu);
});
$scope.$on('$mdMenuClose', function(event, menu) {
console.log('closing menu...', event, menu);
});
我遇到了同样的情况,当我尝试你的回答时,我发现 <md-menu>
的 $scope
里面有一个 $mdMenuIsOpen
所以使用它不需要你绑定到一个事件。