作为一名程序员和角度框架,我还很新,所以问题很明显。
我有一个使用firebase运行CRUD的service.ts文件,并且在Firebase内部,我正在执行一个过滤器,该过滤器取决于变量“ this.machine ”的值。根据计算机名称,将执行过滤器并仅显示该计算机中的数据。
这是代码的一部分:
@Injectable()
export class CrudCadastroService {
public machineList: Machine[];
cadastroList: AngularFireList<any>;
selectedCadastro: CadastroModal = new CadastroModal();
machine: string;
constructor(
private firebase :AngularFireDatabase
) { }
getData(){
this.cadastroList = this.firebase.list('cadastros', ref => ref.orderByChild('machine').equalTo(**this.machine**));
return this.cadastroList;
}
我还有另一个从Firebase数据库推送列表的service.ts,并且我正在component.ts中使用
。在此文件componete.ts中,我获得了此变量的值。
changeShape(shape) {
//Get name machine value
//I want to use this variable **machine** into service.ts
let machine= shape.value;
console.log(machine) //name of machine
}
这是我的html
<div class="form-group">
<select name="machine" #machine="ngModel [(ngModel)]="cadastroService.selectedCadastro.machine"
(change)="changeShape($event.target)" >
<option *ngFor="let machine of machineList"
>{{machine.name}}</option>
</select>
</div>
我的问题是,我可以更改service.ts文件中 this.machine 的值吗?有没有其他方法可以执行此逻辑?
答案 0 :(得分:1)
您可以在service.ts和component.ts中创建setter方法,然后再调用以获取该计算机的列表,将setter方法调用为计算机值。
答案 1 :(得分:0)
在打字稿中,访问器默认情况下是公共的,因此,如果将CrudCadastroService作为“ crudCastroService”注入到组件中,则只需更改
即可在component.ts中更改其值。this.crudCastroService.machine = 'newName';