这是我的控制器:
App.controller('LicenseController', ['$scope', 'licenseService', function($scope, licenseService) {
var self = this;
$scope.productTypes = {name:'', productID:''};
self.productTypes = {name:'', productID:''};
$scope.selectedProduct = {name:'', productID:''};
$scope.productVersions = {productVersion:'', versionID:''};
self.productVersions = {productVersion:'', versionID:''};
$scope.fetchProductType = function(){
licenseService.fetchProductType()
.then(
function(d) {
self.productTypes = d;
$scope.productTypes = d;
console.log($scope.productTypes[1].name);
console.log($scope.productTypes[1].productID);
},
function(errResponse){
console.error('Error while fetching Currencies');
}
);
};
$scope.fetchProductType();
$scope.getProductVersions = function(){
console.log($scope.selectedProduct.productID);
licenseService.getProductVersions($scope.selectedProduct.productID)
.then(
function(d) {
$scope.productVersions = d;
self.productVersions = d;
console.log($scope.productVersions[1].productVersion);
console.log($scope.productVersions[1].versionID);
},
function(errResponse){
console.error('Error while creating User.');
}
);
};
}]);
和HTML:
<tr>
<td>
<label for="sel1">Product Type</label>
<select class="form-control" id="sel1" ng-model=productTypes ng-change="getProductVersions()">
<option ng-repeat="type in ctrl.productTypes" value="" >
{{type.name}}
</option>
</select>
</td>
</tr>
<tr>
<td>
<label for="sel1">Product Version</label>
<select class="form-control" id="ver" ng-model="productVersions" >
<option ng-repeat="version in ctrl.productVersions" value="" >
{{version.productVersion}}
</option>
</select>
</td>
</tr>
首次更改产品类型时,ng-change触发器仅触发一次。我还想在更改时传递所选的产品类型。有人可以帮我怎样做吗?
答案 0 :(得分:2)
我遇到了类似的问题。我能够修复它的方法是使用ng-options指令而不是查看选项。
以下是Angular的1.x文档中的示例:
<select ng-model="myColor" ng-options="color.name group by color.shade for color in colors">