2015-04-16 45 views
5

我想在選項內使用添加按鈕,但問題在於ng-click觸發但未選中該選項。Angularjs:Ui選擇ng-click在ui選擇選項

<ui-select ng-model="datactrl.newservice.selected" theme="selectize" ng-disabled="disabled" style="width: 100%;"> 
    <ui-select-match placeholder="..."> 
     <span ng-bind-html="$select.selected.name"></span>   
    </ui-select-match> 
    <ui-select-choices repeat="service in data.base_services | filter: $select.search"> 
     <span ng-bind-html="service.name | highlight: $select.search"></span> 

     <!-- HERE NOT --> 
     <a href="" class="pull-right" ng-click="setnewservice()"> 
      <i class="glyphicon glyphicon-plus-sign"></i> 
     </a>  
     <!-- ### --> 

    </ui-select-choices> 
</ui-select>        


<!-- here obviously works --> 
<a href="" class="pull-right" ng-click="setnewservice()"> 
    <i class="glyphicon glyphicon-plus-sign"></i> 
</a> 

我可以送一些參數的功能和處理這種情況下,即使選擇該項指數的點擊鏈接,以便與模型採取正確的值, 或類似上述工作樣品中把它外面..

但是我該如何正確處理這個事件,停止事件,選擇沒有發送該對象或其某些屬性的選項,然後完成剩下的工作?

$scope.setnewservice = function ($event) { 
    $event.stopPropagation(); 
    // ?? 
} 
+0

我有一個類似的設置,把NG-點擊作爲我們的一個屬性選擇選項都選擇該項目,並調用方法 –

回答

4

上使用NG-變化 UI,選擇在用戶界面上,選擇 - 選擇不NG單擊。更改此:

ng-click="setnewservice() 

到:

ui-select ng-model="datactrl.newservice.selected" theme="selectize" ng-disabled="disabled" style="width: 100%;" ng-change="setnewservice()> 
+0

我建議使用on-select與ng-change,特別是如果您有typeahead,否則它會觸發每個鍵入到選擇框中的字符。 – goodies4uall

+0

當然,如果你想在選擇一些文本時使用JavaScript。但這不是@丹尼爾問的。 ngChange指令更相關。這個表達式是立即求值的,不像只在變更結束時觸發的JavaScript事件。這是UI選擇選擇工作所必需的。 http://embed.plnkr.co/Ufhb0IfzrTlG3XLY2ahh/ – Fergus

0

您可以在選屬性添加到您的標籤,像這樣:

on-select="setnewservice($item, $model)"