在JS文件中使用Component的成员变量

时间:2018-02-17 16:51:09

标签: javascript angular

如何以角度?

访问js文件中的组件变量

示例:

app.component.ts

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';

  constructor() {}

}

现在如何访问文件中的title变量,例如sample.js

1 个答案:

答案 0 :(得分:0)

啊,在第一轮就误读了我手机上的问题。

这有点简单。如果其他人对此事有任何意见,我肯定有兴趣看到其他方法。

您需要将script.ts设置为可注入类(或服务),以便在应用程序的其他元素中呈现输出。然后,此服务必须在应用程序级别或您传递资源的子树上注册为提供程序。

如果您需要script.js,则需要将该服务用作中介,因为该服务充当您可以提供资源的单例。

此外,您传递资源的组件需要在要传递到的组件或app.modules中注册为提供程序

// my.service.ts

@Injectable()
export class MyService {
    passedVar;
    otherPassedVar;

    constructor(myComponent: MyComponent) {
       // Do something with the variables from my component
       this.passedVar = myComponent.resource;
       this.otherPassedVar = myComponent.getOtherResource();
    }
}

// my.component.ts

// decoration excluded for brevity
export class TestComponent {
    resource = 'some resource this is';

    getResource() {
        return 'this is some other resource';
    }
}

// other.component.ts

@Component({
   selector: '....',
   template: `{{ res1 }} <br> {{ res2 }}`,
   providers: [MyService, MyComponent]
})
export class OtherComponent {
    res1;
    res2;
    constructor(myService: MyService) {
        this.res1 = myService.passedVar;
        this.res2 = myService.otherPassedVar;
    }
}