Javascript 角度2更改禁用/启用的选择选项
我正在使用Angular2,我有两个选择:Javascript 角度2更改禁用/启用的选择选项,javascript,angular,typescript,angular2-forms,angular2-services,Javascript,Angular,Typescript,Angular2 Forms,Angular2 Services,我正在使用Angular2,我有两个选择: <div ng-controller="ExampleController"> <form name="myForm"> <label for="companySelect"> Company: </label> <select name="companySelect" id="companySelect&qu
<div ng-controller="ExampleController">
<form name="myForm">
<label for="companySelect"> Company: </label>
<select name="companySelect" id="companySelect">
<option *ngFor="let company of companies"
value="{{company.id}}"> {{company.name}}
</option>
</select>
<label for="documentTypeSelect"> Type: </label>
<select name="documentTypeSelect" id="documentTypeSelect">
<option value="type1">type1</option>
<option value="type2">type2</option>
<option value="type3">type3</option>
</select>
</form>
<hr>
</div>
这里是这样的:
onChange(event) {
if(event.desadv) {
this.desadv = true;
}
}
我的解决方案:
html
试试这个:
<select class="form-control" name="companySelect" id="companySelect" [(ngModel)]="companySelect" (ngModelChange)="onChange($event)">
<option [ngValue]="undefined" disabled selected>Select...</option>
<option *ngFor="let company of companies" [ngValue]="company.id">{{company.name}}</option>
</select>
<select [disabled]="btnDisable" name="documentTypeSelect" id="documentTypeSelect">
<option value="type1">type1</option>
<option value="type2">type2</option>
<option value="type3">type3</option>
</select>
是的,这是可能的。
我已经创建了一个演示,其中第二个下拉菜单将根据第一个下拉菜单对象中flag的值启用
//代码在这里
var myApp=angular.module('plunker',[]);
角度.module('plunker').controller('MyCtrl',MyCtrl)
MyCtrl.$inject=['$scope'];
函数MyCtrl($scope){
$scope.items1=[{
id:1,
标签:“阿拉贝尔”,
"flag":对,,
子项:{name:'aSubItem'}
}, {
id:2,
标签:“bLabel”,
“flag”:false,
子项:{name:'bSubItem'}
}];
$scope.items2=[{
id:1,
标签:“MyName”,
"flag":对,,
子项:{name:'aSubItem'}
}, {
id:2,
标签:“你的名字”,
“flag”:false,
子项:{name:'bSubItem'}
}];
$scope.changeDetect=函数(){
$scope.selected1='';
log($scope.selected);
如果($scope.selected.flag)
{
$scope.flagValue=false;
}否则{
$scope.flagValue=true;
}
}
$scope.flagValue=true;
}
Which post?@user8558489 response?主要问题是如何将所选公司作为事件传递给onChange,以及如何从此公司获取文档类型属性,例如company.companyRelations.pop().desadvif[禁用]=“!desadv”它将在选项列表中启用。你想禁用**[disabled]=“desadv”**更改它必须在开始时禁用,如果该公司的属性已启用,那么它将随之更改,所以它是确定的。好的,我解决了这个问题。它仅在angularjs中,但不在angularjs 2中。我在angularjs 2中也更新了。请检查
onChange(event) {
if(event.desadv) {
this.desadv = true;
}
}
<form name="myForm">
<label for="companySelect"> Company: </label>
<select name="companySelect" id="companySelect" [(ngModel)]="companySelect"
(ngModelChange)="onChange($event)">
<option [ngValue]="undefined" disabled selected>Select...</option>
<option *ngFor="let company of companies" [ngValue]="company">
{{company.name}}</option>
</select>
<label for="documentTypeSelect"> Type: </label>
<select name="documentTypeSelect" id="documentTypeSelect">
<option [ngValue]="undefined" disabled selected>Select...</option>
<option [disabled]="!desadv" value="desadv">desadv</option>
<option [disabled]="!invoic" value="invoic">invoic</option>
<option [disabled]="!orders" value="orders">orders</option>
<option [disabled]="!recadv" value="orders">recadv</option>
<option [disabled]="!shipment" value="orders">shipment</option>
</select>
onChange(event) {
this.desadv = event.companyRelations[0].desadv;
this.invoic = event.companyRelations[0].invoic;
this.orders = event.companyRelations[0].orders;
this.recadv = event.companyRelations[0].recadv;
this.shipment = event.companyRelations[0].shipment;
}
<select class="form-control" name="companySelect" id="companySelect" [(ngModel)]="companySelect" (ngModelChange)="onChange($event)">
<option [ngValue]="undefined" disabled selected>Select...</option>
<option *ngFor="let company of companies" [ngValue]="company.id">{{company.name}}</option>
</select>
<select [disabled]="btnDisable" name="documentTypeSelect" id="documentTypeSelect">
<option value="type1">type1</option>
<option value="type2">type2</option>
<option value="type3">type3</option>
</select>
private companySelect: any;
private btnDisable: boolean = true;
onChange(event) {
if(event) {
this.btnDisable = false;
}
}