Angular 2:更新服务变量和视图
Angular 2: Update service variables and the view
我有一个名为ValueService的服务,它的值为0。然后我有一个导航组件和一个标题组件。valueService中的值,不会在点击时更新标题视图。我是新的角度2的东西,所以我不知道如何得到这个工作。这是我目前所知道的。谢谢你的帮助。
<<p> 价值服务/strong>import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class ValueService {
value:number;
constructor() {
this.value = 0;
}
goTo(value){
this.value = value;
console.log('value in service', this.value);
}
导航组件模板
<button *ngFor="let d of array | keys; let i = index" (click)="valueService.goTo(i)"> {{ i }} </button>
标题组件模板
问题在这里。我只想显示由按钮的索引从nav组件中选择的h3,但出于某种原因,它保持设置为默认值0,并且不更新该值。
<h3 *ngIf="i==valueService.value" *ngFor="let d of array | keys; let i = index"> {{ text here }} </h1>
你的service和nav组件看起来很好。
你可能会遇到这样的问题:在你的heading组件中,你有两个绑定,而ngIf中的i没有定义或没有绑定到for循环。我会把顺序明确一点,看看这是否有帮助。
<template ngFor let-d [ngForOf]="array" let-i="index">
<h3 *ngIf="i==valueService.value">
{{ text here }}
</h3>
</template>
你也有一个错误,你的h3标签以h1结束,所以实际上angular甚至不应该编译这个,并在控制台上抱怨它。
我最终在json文件中设置了一个全局变量,并更新了该值。它也更新了兄弟组件中的值。
相关文章:
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- 在Django中,可以在视图中创建一个包含js的变量,然后在循环模板标记中使用它
- 如何将Laravel变量传递到我的AngularJS视图中
- AngularJS更新控制器变量并再次渲染视图
- 使用hidden_field_tag助手将JavaScript变量的值传递到Rails视图
- 无法将对象列表从视图模型设置为 javascript 变量
- 为什么我无法在我的视图中看到这个变量
- 在MVC视图中的变量中使用javascript 从@模型中提取
- 使用*ngIf+模板变量+loadIntoLocation以编程方式将组件加载到视图中
- 范围变量更新,但不更新视图
- 更新后,父视图未在 Electron 中的
上设置全局变量 - 如何在rails视图中定义gon变量(瘦文件)
- MVC6将视图模型列表属性分配给javascript变量
- 将视图中的JavaScript变量值分配给控制器变量
- 将全局变量从控制器调用到HTML视图AngularJS
- 在MVC视图和DateTimePicker中设置会话变量
- MVC 5视图-设置Javascript变量
- 从JavaScript在ExpressJS中设置视图变量