是否有<md-menu>指令的isOpen属性?

时间:2016-02-29 00:18:15

标签: javascript angularjs angular-material

.subscribe( (response) => { /* this function is executed every time there's a new output */ console.log("VALUE RECEIVED: "+response); }, (err) => { /* this function is executed when there's an ERROR */ console.log("ERROR: "+err); }, () => { /* this function is executed when the observable ends (completes) its stream */ console.log("COMPLETED"); } ); isOpen指令的<md-menu>属性(或类似)是否可​​以侦听或绑定?

注意:我最初的问题要长得多,而且过于复杂,@Sarhanis让我意识到我在问错误的问题。

3 个答案:

答案 0 :(得分:4)

感谢@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); 

});

答案 1 :(得分:1)

我在同样的情况下苦苦挣扎,当我尝试你的答案时,我发现在<md-menu> {{1}}内有一个{{1}} 所以使用它不需要你绑定到一个事件。

答案 2 :(得分:0)

您的示例存在更大的应用程序设计问题。

你应该避免在Angular项目中使用jQuery。通过直接在DOM上工作,jQuery破坏了Angular的设计运作方式。

如果要向HTML元素添加类和事物,可以使用普通类属性和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

它们应该处理您在控制器中定义的范围变量。