Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度2更改禁用/启用的选择选项_Javascript_Angular_Typescript_Angular2 Forms_Angular2 Services - Fatal编程技术网

Javascript 角度2更改禁用/启用的选择选项

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

我正在使用Angular2,我有两个选择:

<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;
    }
}