Material 疯狂设计 md-menu

Material Design md-menu madness

我将 Angularjs 与 Angular Material 一起使用,并且我有一个 <md-menu>,它在单击 <md-button> 时打开。我使用 ng-repeat 呈现菜单,如下所示:

            <md-menu-item ng-repeat="item in orderItem.searchItems">
                <md-button ng-click="orderItem.searchMenuHit($event, '{{item.field}}')">
                    {{item.caption}}
                </md-button>
            </md-menu-item>

如果我右键单击一个菜单项并使用调试器检查它,它会将 ng-click 显示为 orderItem.searchMenuHit($event,'STK_NUM'),这正是我所期望的。

如下图所示:

当调用 orderItem.searchMenuHit 时,它接收“{{item.field}}”作为其第二个参数的值。

我不确定这是为什么,也不知道如何解决。显然,当菜单实际呈现该项目时,使用正确的 ng-click 代码呈现;似乎当单击某个项目时,该项目会以某种方式重新呈现并且 angular 表达式,即使认为它是有效的,也不会被评估。

所以,我不确定我是否在做一些愚蠢的事情,让这件事变得比应该做的更难,但不管出于什么原因,我无法让 item.field 被正确传递为我的控制器的一个参数。我最终传递了整个项目对象并且工作正常。

我的整个 <md-menu> 片段现在看起来像这样:

<md-menu>
        <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)">
            <i class="material-icons md-dark">search</i>
        </md-button>
        <md-menu-content>
            <md-menu-item ng-repeat="item in orderItem.searchItems">
                <!--<md-button ng-click={{orderItem.getShortCutItem(item)}}>-->
                <md-button ng-click="orderItem.searchMenuHit(item)">
                    {{item.caption}}
                </md-button>
            </md-menu-item>
        </md-menu-content>
    </md-menu>