将值设置为 select 型号
set value to select model
我希望执行以下操作,使用控制器发送的预加载数据和输入和选择器加载表单。在某些情况下这些有效但在其他情况下无效,尤其是在选择器中。我有一个名为国家、城市和类别的选择器。这 3 个选项选择器是通过调用我的服务器工程加载的。
$scope.categorias = {};
$scope.ciudades = {};
$scope.paises = {};
$http({ method: 'GET', url: UrlCategorias.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.categorias = data.GetCategoriasResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
$http({ method: 'GET', url: UrlCiudades.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.ciudades = data.GetCiudadesResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
$http({ method: 'GET', url: UrlPaises.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.paises = data.GetPaisesResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
Html
<label class="item item-input item-select">
<div class="input-label">
Pais
</div>
<select name="selectPais" id="selectPais" ng-model="data.defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo" ng-change="updateTheOtherDropdown(data.defaultPais)">
<option value="">Seleccione país</option>
</select>
</label>
<label class="item item-input item-select">
<div class="input-label">
Ciudad
</div>
<select name="selectCiudad" id="selectCiudad" ng-disabled="!data.defaultPais" ng-model="data.defaultCiudad" ng-options="ciudad.ciuId as ciudad.ciuNombre for ciudad in ciudades_filter ">
<option value="">Seleccione ciudad</option>
</select>
</label>
<label class="item item-input item-select">
<div class="input-label">
Categoria
</div>
<select name="selectCategoria" id="selectCategoria" ng-model="data.defaultCategoria" ng-options="categoria.catNombre for categoria in categorias track by categoria.catCodigo">
<option value="">Seleccione categoría</option>
</select>
</label>
前两个选择器的想法是选择国家然后加载选择器城市。这很好用。
我向管理员发送以下信息:
$scope.data.defaultPais: sessionService.get('user_paisCodigo'),
$scope.data.defaultCiudad : sessionService.get('user_ciudadId'),
$scope.data.defaultCategoria : sessionService.get('user_categoriaCod')
这些值来了,但没有显示在选择器中
<select name="selectPais" id="selectPais" ng-model="data.defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo" ng-change="updateTheOtherDropdown(data.defaultPais)" class="ng-pristine ng-valid ng-not-empty ng-touched" style="">
<option value="" selected="selected">Seleccione país</option>
<option label="Argentina" value="AR">Argentina</option>
<option label="Chile" value="CL">Chile</option>
<option label="Uruguay" value="UY">Uruguay</option></select>
这已经加载到 HTML 代码选择器中,我发送给他的 VALUE 是,在本例中是 CL、UY 或 AR。
如果 paises
是异步设置或在执行某些操作后(例如选择不同的国家/地区),您将需要设置 $scope.data.defaultPais: sessionService.get('user_paisCodigo')
after paises
已加载。
如果在 paises
加载之前设置defaultPais
,<select name="selectPais" ...
将为其ng-model
分配一个空值,因为您尝试在初始化时设置的值还不在 ng-options
的列表中。
所以像这样:
$http({ method: 'GET', url: UrlPaises.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.paises = data.GetPaisesResult;
$scope.data.defaultPais = sessionService.get('user_paisCodigo');
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
我希望执行以下操作,使用控制器发送的预加载数据和输入和选择器加载表单。在某些情况下这些有效但在其他情况下无效,尤其是在选择器中。我有一个名为国家、城市和类别的选择器。这 3 个选项选择器是通过调用我的服务器工程加载的。
$scope.categorias = {};
$scope.ciudades = {};
$scope.paises = {};
$http({ method: 'GET', url: UrlCategorias.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.categorias = data.GetCategoriasResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
$http({ method: 'GET', url: UrlCiudades.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.ciudades = data.GetCiudadesResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
$http({ method: 'GET', url: UrlPaises.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.paises = data.GetPaisesResult;
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});
Html
<label class="item item-input item-select">
<div class="input-label">
Pais
</div>
<select name="selectPais" id="selectPais" ng-model="data.defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo" ng-change="updateTheOtherDropdown(data.defaultPais)">
<option value="">Seleccione país</option>
</select>
</label>
<label class="item item-input item-select">
<div class="input-label">
Ciudad
</div>
<select name="selectCiudad" id="selectCiudad" ng-disabled="!data.defaultPais" ng-model="data.defaultCiudad" ng-options="ciudad.ciuId as ciudad.ciuNombre for ciudad in ciudades_filter ">
<option value="">Seleccione ciudad</option>
</select>
</label>
<label class="item item-input item-select">
<div class="input-label">
Categoria
</div>
<select name="selectCategoria" id="selectCategoria" ng-model="data.defaultCategoria" ng-options="categoria.catNombre for categoria in categorias track by categoria.catCodigo">
<option value="">Seleccione categoría</option>
</select>
</label>
前两个选择器的想法是选择国家然后加载选择器城市。这很好用。
我向管理员发送以下信息:
$scope.data.defaultPais: sessionService.get('user_paisCodigo'),
$scope.data.defaultCiudad : sessionService.get('user_ciudadId'),
$scope.data.defaultCategoria : sessionService.get('user_categoriaCod')
这些值来了,但没有显示在选择器中
<select name="selectPais" id="selectPais" ng-model="data.defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo" ng-change="updateTheOtherDropdown(data.defaultPais)" class="ng-pristine ng-valid ng-not-empty ng-touched" style="">
<option value="" selected="selected">Seleccione país</option>
<option label="Argentina" value="AR">Argentina</option>
<option label="Chile" value="CL">Chile</option>
<option label="Uruguay" value="UY">Uruguay</option></select>
这已经加载到 HTML 代码选择器中,我发送给他的 VALUE 是,在本例中是 CL、UY 或 AR。
如果 paises
是异步设置或在执行某些操作后(例如选择不同的国家/地区),您将需要设置 $scope.data.defaultPais: sessionService.get('user_paisCodigo')
after paises
已加载。
如果在 paises
加载之前设置defaultPais
,<select name="selectPais" ...
将为其ng-model
分配一个空值,因为您尝试在初始化时设置的值还不在 ng-options
的列表中。
所以像这样:
$http({ method: 'GET', url: UrlPaises.url, dataType: "json", contentType: "application/x-www-form-urlencoded" })
.success(function(data) {
$scope.paises = data.GetPaisesResult;
$scope.data.defaultPais = sessionService.get('user_paisCodigo');
})
.error(function(response) {
console.log("Error inesperado");
})
.finally(function() {
});