Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 材料设计md菜单疯狂_Javascript_Angularjs_Angular Material - Fatal编程技术网

Javascript 材料设计md菜单疯狂

Javascript 材料设计md菜单疯狂,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,我正在使用Angularjs和Angular材质,我有一个在单击时打开的。我使用如下所示的ng重复渲染菜单: <md-menu-item ng-repeat="item in orderItem.searchItems"> <md-button ng-click="orderItem.searchMenuHit($event, '{{item.field}}')"> {{ite

我正在使用Angularjs和Angular材质,我有一个在单击时打开的。我使用如下所示的ng重复渲染菜单:

            <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>
<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>
如果我右键单击一个菜单项并用调试器检查它,它会显示ng click as orderItem.searchMenuHit$事件,“STK_NUM”,这就是我所期望的

如下图所示:

调用orderItem.searchMenuHit时,它将“{item.field}}}”作为第二个参数的值


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

因此,我不确定我是否做了一些愚蠢的事情,使这件事变得比应该做的更困难,但无论出于何种原因,我无法将item.field作为参数正确地传递给我的控制器。我最终传递了整个item对象,效果很好

现在,我的整个代码片段如下所示:

            <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>
<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>

您将参数括在引号中,因此它将向函数发送字符串文字。去掉引号,它应该是fineNo,我已经试过了,然后值周围没有引号,它被解释为变量。如果需要输出,在引号中包含一个角度表达式是很正常的。啊,我想根据这个问题,你希望它作为变量发送。那么期望的结果是什么?原始问题陈述了期望的结果。如果我右键单击菜单项并使用调试器检查它,它会显示ng click作为orderItem.searchMenuHit$事件,“STK_NUM”,这是我所期望的。请这样尝试:ng click=orderItem.searchMenuHit$事件,item.field