如何以角度?
访问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
?
答案 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;
}
}