Rumah > Soal Jawab > teks badan
在做省市联动。option中value是省市编码 text是名称,
如何才能既确定selected选项,又获取text名称?
曾经蜡笔没有小新2017-05-15 17:02:31
Hanya gunakan ng-options
Kod agak lambat untuk dimuatkan. . Tunggu sebentar untuk melihat kesannya:
http://codepen.io/flybywind/pen/GZyydY
怪我咯2017-05-15 17:02:31
<p ng-controller="MyCtrl">
<select ng-model="province">
<option value="">--province--</option>
<option ng-repeat="p in provinces" value="{{p.value}}">{{p.text}}</option>
</select>
<select ng-model="city">
<option value="">--city--</option>
<option ng-repeat="c in citys" value="{{c.value}}">{{c.text}}</option>
</select>
</p>
angular.module('myApp', [])
.controller('MyCtrl', function ($scope) {
$scope.province = '';
$scope.city = '';
$scope.citys = null;
$scope.provinces = [
{
value: 1,
text: 'jiangsu',
citys: [
{
value: 1,
text: 'nanjing'
}
]
},
{
value: 2,
text: 'anhui',
citys: [
{
value: 1,
text: 'hefei'
}
]
}
];
$scope.$watch('province', function (value) {
if (!value) {
$scope.citys = null;
} else {
$scope.citys = $scope.provinces.filter(function (p) {
return value == p.value;
})[0].citys;
}
$scope.city = '';
});
});
曾经蜡笔没有小新2017-05-15 17:02:31
Sebenarnya, ini adalah masalah saya Penyelesaian masalah adalah dengan mengikat model-ng ke objek, dan kemudian mengikat nilai pilihan kepada objek yang sama. Ini menyelesaikan 'masalah pemilihan' id atau nilai teks di latar belakang, secara langsung Id atau teks objek. terima kasih!
ringa_lee2017-05-15 17:02:31
Ia boleh didapati dalam dokumentasi rasmi angularJS, anda perlu membawa tangga anda sendiri
Berikut ialah contoh daripada dokumentasi versi 1.4.7 yang saya gunakan
<p ng-controller="ExampleController">
<form name="myForm">
<label for="repeatSelect"> Repeat select: </label>
<select name="repeatSelect" id="repeatSelect" ng-model="data.repeatSelect">
<option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
</select>
</form>
<hr>
<tt>repeatSelect = {{data.repeatSelect}}</tt><br/>
</p>
angular.module('ngrepeatSelect', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.data = {
repeatSelect: null,
availableOptions: [
{id: '1', name: 'Option A'},
{id: '2', name: 'Option B'},
{id: '3', name: 'Option C'}
],
};
}]);
Hasilnya ialah bahagian nama dipaparkan dalam pilihan dan model memperoleh id Model di sini menggunakan data.repeatSelect kerana gelung berada pada pilihan, menghasilkan skop yang berbeza