通过返回函数绑定组件中的服务变量

时间:2018-05-16 09:27:57

标签: angular angular5

我想将服务变量与ngModel(双向绑定)绑定到组件输入。因此,我使用简单的返回函数来返回服务变量(这是从服务中获取正确变量所必需的。)

但如果我想运行此代码,我会收到以下错误:

Template parse errors:
Parser Error: Unexpected token '=' at column 10 in [getName()=$event] in ng:///AppModule/HelloComponent.html@2:9 ("
{{nameService.name}}

Hello在我的案例中是一个更复杂的例子。为了简化这一点,我做了以下示例和演示:https://stackblitz.com/edit/angular-hwgoux?file=src%2Fapp%2Fhello.component.ts

服务:

import { Injectable } from '@angular/core';

@Injectable()
export class NameService {
  name:string="Hello World!";
  constructor() { }
  getName(){return this.name};
}

组件:

import { Component, Input } from '@angular/core';
import { NameService} from './name.service';

@Component({
  selector: 'hello',
  template: `
  {{nameService.name}}
  <input [(ngModel)]="getName()">`
})
export class HelloComponent  {
  @Input() name: string;
  constructor(private nameService:NameService){
  }
  getName(){
    return this.nameService.getName();
  }
}

1 个答案:

答案 0 :(得分:0)

更改模板以按以下方式处理双向数据绑定:

setName

$joinQuery = ' from (SELECT * from `table1` '; $joinQuery .= ' UNION ALL'; $joinQuery .= ' SELECT * from `table2` ) temp'; 是服务变量的设定者。

我将您的stackblitz分叉,以显示您想要实现的目标的简化示例:Demo