2015-09-11 312 views
0

我正在使用Angularjs和Angular Material,當點擊一個<md-button>時,我打開了一個<md-menu>。我渲染菜單與NG重複,看起來像這樣:Material Design md-menu madness

  <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-單擊以orderItem.searchMenuHit($事件」 STK_NUM'),這是我所期望的。

如下圖所示: enter image description here

當orderItem.searchMenuHit被調用它接收「{{item.field}}」作爲它的第二個參數的值。

我不確定這是爲什麼,或者如何解決它。顯然,當它實際呈現的菜單項是使用正確的ng-click代碼呈現的,但是;似乎當一個項目被點擊時,該項目以某種方式重新呈現,並且角度表達,即使認爲它是有效的,也不會被評估。

+1

你在報價參數,所以它發送一個字符串的函數。取消報價,它應該沒事 – Jesse

+0

不,我已經試過,然後有沒有引號周圍的價值,它被解釋爲一個變量。如果這是所需的輸出,那麼在引號內包含Angular表達式是非常正常的。 –

+0

啊,我的想法是基於你想要作爲變量發送的問題。那麼期望的結果是什麼? – Jesse

回答

0

所以,我不知道我是否做了一件愚蠢的事情,讓事情變得更加困難,但無論出於何種原因,我都無法將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>