使用角度,如何在下拉列表中的 ng-change 上获取选定值?
Using angular, How do I get selected value on ng-change on a dropdown?
所以我有一些数据以逗号分隔的字符串形式出现。
sizes: "Small,Medium,Large,X Large,XX Large"
我得到一个下拉列表,显示基于拆分该字符串的值。
<select ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
ng-change="selected.product.set.size(choice);>
<option value="">Please select a size</option>
</select>
使用 ng-change
:如何将所选值 choice
传递给函数?
您可以使用 ng-model
并在 ng-change
回调中访问它,或者直接传递它。
<select ng-model="selectedSize" ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
ng-change="selected.product.set.size(selectedSize)">
<option value="">Please select a size</option>
</select>
angular.module('app', []).controller('ctrl', function($scope) {
$scope.sizes = "Small,Medium,Large,X Large,XX Large";
$scope.handleChange = function() {
console.log($scope.selectedSize)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<select ng-model="selectedSize" ng-options="choice as choice for (idx, choice) in sizes.split(',')" ng-change="handleChange()">
<option value="">Please select a size</option>
</select>
</div>
对我来说,只使用一个简单变量的 ng-model 是行不通的!所以 $scope.selectedSize 对我来说 return 未定义并且 $scope.selectedSize = "what size ever" 不会改变 select 下拉列表的模型。
甚至可以这样工作吗(byValue / byRef 变量)?
在我的案例中,使用 ng.model="whatever.selectedSize" 和 $scope.whatever.selectedSize 可以获取和设置下拉菜单/模型的值。
这一定会有帮助。
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<div ng-controller="manageroles_controller" ng-app="app_manageroles">
<select title="Update Role Hierarchy" name="cmb_role_hierarchy" id="cmb_role_hierarchy" ng-model="cmb_role_hierarchy" ng-change="updateRoleHierarchy('cmb_role_hierarchy');">
<option ng-init="cmb_role_hierarchy=5" value="5">5</option>
</select>
</div>
var app_manageroles = angular.module('app_manageroles',[]);
app_manageroles.controller('manageroles_controller', function($scope,$http) {
$scope.updateRoleHierarchy = function(cntRoleHierarchy) {
alert(cntRoleHierarchy);
}
});
所以我有一些数据以逗号分隔的字符串形式出现。
sizes: "Small,Medium,Large,X Large,XX Large"
我得到一个下拉列表,显示基于拆分该字符串的值。
<select ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
ng-change="selected.product.set.size(choice);>
<option value="">Please select a size</option>
</select>
使用 ng-change
:如何将所选值 choice
传递给函数?
您可以使用 ng-model
并在 ng-change
回调中访问它,或者直接传递它。
<select ng-model="selectedSize" ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
ng-change="selected.product.set.size(selectedSize)">
<option value="">Please select a size</option>
</select>
angular.module('app', []).controller('ctrl', function($scope) {
$scope.sizes = "Small,Medium,Large,X Large,XX Large";
$scope.handleChange = function() {
console.log($scope.selectedSize)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<select ng-model="selectedSize" ng-options="choice as choice for (idx, choice) in sizes.split(',')" ng-change="handleChange()">
<option value="">Please select a size</option>
</select>
</div>
对我来说,只使用一个简单变量的 ng-model 是行不通的!所以 $scope.selectedSize 对我来说 return 未定义并且 $scope.selectedSize = "what size ever" 不会改变 select 下拉列表的模型。
甚至可以这样工作吗(byValue / byRef 变量)?
在我的案例中,使用 ng.model="whatever.selectedSize" 和 $scope.whatever.selectedSize 可以获取和设置下拉菜单/模型的值。
这一定会有帮助。
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<div ng-controller="manageroles_controller" ng-app="app_manageroles">
<select title="Update Role Hierarchy" name="cmb_role_hierarchy" id="cmb_role_hierarchy" ng-model="cmb_role_hierarchy" ng-change="updateRoleHierarchy('cmb_role_hierarchy');">
<option ng-init="cmb_role_hierarchy=5" value="5">5</option>
</select>
</div>
var app_manageroles = angular.module('app_manageroles',[]);
app_manageroles.controller('manageroles_controller', function($scope,$http) {
$scope.updateRoleHierarchy = function(cntRoleHierarchy) {
alert(cntRoleHierarchy);
}
});