我有一个简单的网络应用程序,它有一个应用程序模型和几个组件。当我更新我的模型中的数组时,正在使用该模型的视图不会更新。当我控制日志模型数组时,我可以看到正在更新的模型而不是视图。任何帮助将不胜感激。下面请看一下我目前的情况。
overview.component.ts
import { Component, OnInit } from '@angular/core';
import { AppModel } from '../models/app-model';
@Component({
selector: 'app-overview',
templateUrl: './overview.component.html',
providers: [AppModel]
})
export class OverviewComponent implements OnInit {
constructor(public AppModel:AppModel) { }
ngOnInit() {}
}
应用-model.ts
export class AppModel {
myArray:Array<any> = [];
constructor(){}
}
overview.component.html (这是模型更新时未更新的视图)
<td *ngFor="let dataItem of AppModel.myArray">
<span{{ dataItem }}</span>
</td>
这是我从其他组件
更新应用模型中的数组的方法import { Component, OnInit } from '@angular/core';
import { Http, Response } from '@angular/http';
import { AppService } from '../services/app.service';
import { AppModel } from '../models/app-model';
@Component({
selector: 'other-component',
templateUrl: './other-component.component.html',
providers: [AppService, AppModel]
})
export class OtherComponent implements OnInit {
constructor(private http: Http, public AppService:AppService,public AppModel:AppModel) {}
private updateModel() :void {
this.AppModel.myArray = someArray;
}
ngOnInit() {}
}
答案 0 :(得分:1)
对于服务,您可以获得每个提供商的实例
如果向组件添加提供程序,则会获得与组件实例一样多的服务实例。只有组件本身及其子组件才能从组件中注入提供程序
您需要在公共父组件上或// serve all static files from the /public folder
app.use(express.static(path.join(__dirname, 'public')))
// serve index.html for all routes
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/index.html'))
})
中提供服务
只有@NgModule()
中的提供者才能获得整个应用程序的单个实例