Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 选择下拉菜单“选定值”_Angularjs - Fatal编程技术网

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);
    }
})