2017-09-23 63 views
0

我在我的演示中有一個列表。在每個項目中,都有下拉菜單。如果用戶更改任何下拉值,我想更改按鈕文本。如何更改角度1中的按鈕文本?

示例: 當前,按鈕文本是Fixed。如果用戶更改任何下拉值(a到b或c),它也應該是change按鈕文本。

這裏是我的代碼:

Plunk DEMO

<body ng-controller="MainCtrl"> 
    <button>{{btn}}</button> 
    <div ng-repeat="x in arr">{{x}} 
    <select class="selectpicker"> 
      <option>A</option> 
      <option>B</option> 
      <option>C</option> 
    </select> 

    </div> 
    </body> 

換句話說 。當你運行應用程序時,如果顯示按鈕文本「固定」我再解釋一下。現在如果我將下拉值A更改爲B。第一個和第三個下拉值保持不變A。然後將按鈕文本更改爲Changed

+0

試穿選擇框NG-變化。 –

+0

[select指令](https://docs.angularjs.org/api/ng/directive/select)與[ngModel](https://docs.angularjs.org/api/ng/directive/ngModel)一起使用)在「範圍」和「控制」(包括設置默認值)之間提供數據綁定。它還可以處理動態'

回答

0

看起來你正在尋找驗證。您可以檢查更改狀態的下拉元素,並相應地修改按鈕上的文本。在Angularjs驗證

偉大的教程: https://scotch.io/tutorials/angularjs-form-validation

您可以在下拉菜單設置名稱屬性,使用方法如下:

<form name="form"> 
    <button>{{ form.dropdown.$touched ? 'changed' : btn }}</button> 
    <select name="dropdown"> 
     ... 
    </select> 
</form> 
0

可以使用角度內置指令ng-change,這是發射當值改變時

在您的HTML中,

<select class="selectpicker" ng-model="val" ng-change="update()"> 

在你的控制器,

$scope.update=function(){ 
    $scope.btn = 'Changed'; 
    } 

檢查更新花掉

Plunk DEMO

0

使用ng-model指令連同ng-change指令:

<body ng-controller="MainCtrl"> 
    <button>{{btn}}</button> 
    <div ng-repeat="x in arr">{{x}} 
     <select class="selectpicker" 
       ng-model="arr.select[$index]" 
       ng-change="selectAction($index)" 
     > 
       <option>A</option> 
       <option>B</option> 
       <option>C</option> 
     </select> 
    </div> 
</body> 

從文檔:

select directivengModel一起用於提供scope<select>控件(包括設置默認值)之間的數據綁定。它還處理動態<option>元素,可以使用ngRepeatngOptions指令添加元素。

— AngularJS <select> Directive API Reference

相關問題