У меня есть служба для загрузки и сохранения шаблонов, и я хочу, чтобы при нажатии на ion-select параметры загружались динамически, поэтому каждый сохраненный шаблон представлял собой параметр вместо жестко заданных параметров.
Я попытался использовать NgFor и создать экземпляр службы, которая обрабатывает шаблоны в файле JS.
Вот код HTML
'''
<ion-item>
<ion-label>Load template</ion-label>
<ion-select>
<ion-option *ngFor = "let template of templates;">
{{templates}}
</ion-option>
</ion-select>
</ion-item>
'''
Вот шаблон сервисного кода
'''
export class TemplateService {
public templates: Template[] = [];
...
getAllTemplates(): Template[] {
return this.templates;
}
'''
Вот код JS
'''
export class NewTransactionPage {
templates: Template[];
...
constructor(public templateServicerino: TemplateService) {
this.templates = this.templateServicerino.getAllTemplates();
'''
Я получаю сообщение об ошибке "Uncaught (в обещании): Ошибка: StaticInjectorError (AppModule) [NewTransactionPage → TemplateService: StaticInjectorError (Platform: core) [NewTransactionPage → TemplateService: NullInjectorError: Нет поставщика для службы шаблонов!"
Объявите сервис в качестве поставщика. Один из способов сделать это - использовать аннотацию, подобную этой.
@Injectable({
providedIn: 'root'
})
export class TemplateService {//body}
let template of templates
означает, что вы определяете template
, let template
похож на var template
. of
ключевому слову получает один пункт за один раз из templates
массива template
переменных и цикл повторяется , пока все элементы не будут сделаны.
*ngFor
неngfor.