我希望這是接近你想要什麼。我在options數組上使用了更多屬性,並在ng-change上更改文本。
http://jsfiddle.net/KN9xx/1433/
HTML
<div ng-app="myapp">
<div ng-controller="FirstCtrl">
<select ng-model="selectedValue" name="state"
ng-options="option.code as option.code + option.nameTemplate for option in options" ng-change="changeText(selectedValue)"
class="form-control" required></select>
</div>
</div>
JS
var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
$scope.options = [
{
"name": "Connecticut",
"nameTemplate": "- Connecticute",
"code": "CT"
},
{
"name": "Connecticut",
"nameTemplate": "- Connecticute",
"code": "AB"
}
];
$scope.selectedValue = "";
$scope.changeText = function(selectedValue) {
for(var i = 0, m = $scope.options.length; i < m; i++) {
if($scope.options[i].code === selectedValue) {
$scope.options[i].nameTemplate = "";
}else {
$scope.options[i].nameTemplate = " - " + $scope.options[i].name;
}
}
}
});
肯定是有一些改善的代碼,但這個想法是改變在NG選項的文本。讓我知道如果你有任何問題:)