Angularjs 选择下拉菜单“选定值”
我在选项下拉框中有一个带有国家代码和全名的下拉列表。 如下Angularjs 选择下拉菜单“选定值”,angularjs,Angularjs,我在选项下拉框中有一个带有国家代码和全名的下拉列表。 如下 <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.names = ["US-United state of America", "IN-India", "UK-United Kingdom"];
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.names = ["US-United state of America", "IN-India", "UK-United Kingdom"];
});
</script>
我的html部分是
<select ng-model="selectedName" ng-options="x for x in names"></select>
好的,我想做的是,当我在下拉列表中选择任何下拉列表值时,应该只输入US而不输入其全名
当我将这些数据保存到数据库中时,我只是从webservice调用中保存我们,但在UI部分,我需要管理这些事情,并且当我编辑此记录时,应该在下拉列表中只选择我们,而不是美国
我知道这是一个奇怪的要求,但我们需要这样做:您可以拆分下拉列表中的值以删除连字符后面的部分-。您的names数组将保持不变,并且您不必编写任何javascript var app=angular.module'myApp',[] 应用程序控制器'myCtrl'[ “$scope”, 函数$scope{ $scope.names=[美国、美利坚合众国、印度、英国和英国]; } ] {{selectedName1} {{selectedName2}} 使用过滤器 模板:
<select
ng-model="selectedName"
ng-change="stripCountryName(x)"
ng-options="x | stripCountryName for x in names">
</select>
通过将选项注入控制器,您还可以使用此过滤器在选择选项后修改结果:
app.controller('myCtrl', function($scope, stripCountryNameFilter) {
$scope.stripCountryName = (option) => {
$scope.selectedName = stripCountryNameFilter(option);
}
})
这样,原始的$scope.name将始终保持不变
app.controller('myCtrl', function($scope, stripCountryNameFilter) {
$scope.stripCountryName = (option) => {
$scope.selectedName = stripCountryNameFilter(option);
}
})