0
我是Angular2的新手,花了很多時間去修復一件簡單的事情。 正如你所看到的,我只想訪問本地存儲(底層功能,ui()
)並將內容發送到View, Register.components.html.
我試過各種博客,但每次都失敗。在Angular2中,如何將JSON從服務/組件發送到我的HTML組件?
所以我真的不能發佈錯誤,但我如何才能訪問本地存儲並顯示內容到我的視圖?另外ui()
未被調用。我如何稱呼它?
Register.component.ts
import { Component, OnInit } from '@angular/core';
import {ValidateService} from '../../services/validate.service';
import {AlarmService} from '../../services/alarm.service';
import {FlashMessagesService} from 'angular2-flash-messages';
import {Router} from '@angular/router';
@Component({
selector: 'app-register',
templateUrl: './register.component.html',
styleUrls: ['./register.component.css']
})
export class RegisterComponent implements OnInit {
hours: String;
id: String;
constructor(
private validateService: ValidateService,
private FlashMessage: FlashMessagesService,
private Router: Router,
private AlarmService: AlarmService
){
}
ngOnInit() {
}
onRegisterSubmit(){
var user = {
hours: (new Date(this.hours.replace('T', ' ').replace('-', '/'))).valueOf(),
id: new Date().getTime(),
flag: 0
}
setTimeout(() => {
this.FlashMessage.show('Your alarm has been added.', {cssClass: 'alert-success', timeout: 5000});
}, 10);
var storage = localStorage.getItem('users');
var final = [];
if (storage == null || typeof(storage) == undefined)
{ final.push(user);
localStorage.setItem('users', JSON.stringify(final));
let time = new Date().getTime()
this.AlarmService.setUpAlarms(time);
}else{
var get = JSON.parse(localStorage.getItem('users'));
var size = Object.keys(get).length;
for(var i =0; i< get.length; i++){
final.push(get[i]);
}
final.push(user);
localStorage.setItem('users', JSON.stringify(final));
let time = new Date().getTime()
this.AlarmService.setUpAlarms(time);
}
}
ui(){
var storage = localStorage.getItem('users');
if (storage == null || typeof(storage) == undefined){
var HERO = localStorage.getItem('users');
}
console.log(HERO);
const HEROES = HERO
}
}
這是我的HTML視圖
<form (submit)="onRegisterSubmit()">
<div class = "container">
<div class="overlay">
<div id="alarm-dialog">
HEKK
<h2>Set alarm at</h2>
<div class="form-group">
<label class="hours">
<input type="datetime-local" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}" class="form-control" [(ngModel)]="hours" name="hours" value="0" min="0" required/>
</label>
</div>
<a class="close"></a>
</div>
</div>
<input type="submit" class="btn btn-primary" value="Set Alarm">
</div>
</form>
<tr *ngFor="let hero of heroes">
<td>{{hero.hours}}</td>
</tr>
三江源弗蘭克。但是,我給了什麼類型?它作爲一個數組返回。那麼我添加什麼類型?如果我添加String,它只打印Object,object。 –
如果'JSON.parse(localStorage.getItem('users'))'返回一個數組(確認這個!),你應該用'heroes:any []'來確定。如果你已經定義了一個類型,你可以做'英雄:YourType []'。 –
非常感謝你,你救了我。我還有一個問題,可以請你告訴我如何在服務遞歸中創建函數? –