我的应用程序有问题。有人可以帮助我吗?
错误: 将循环结构转换为JSON
“我的服务”用于创建项目并保存在本地存储中:
addItem(item: Item): void {
this.itens.unshift(item);
let itens;
if (localStorage.getItem('itens') == null){
itens = [];
itens.unshift(itens);
localStorage.setItem('itens', JSON.stringify(itens));
} else {
JSON.parse(localStorage.getItem('itens'));
itens.unshift(itens);
localStorage.setItem('itens', JSON.stringify(itens));
}
}
还有我的component.ts
:
addItem(): void {
this.itemAdicionado.emit({
nome: this.nome,
unidade: this.unidade,
quantidade: this.quantidade,
preco: this.preco,
perecivel: true,
validade: this.validade,
fabricacao: this.fabricacao,
});
this.nome = '';
this.unidade ;
this.quantidade ;
this.preco;
this.validade;
this.fabricacao;
console.log(this.nome, this.unidade, this.quantidade, this.preco, this.validade, this.fabricacao);
}
答案 0 :(得分:0)
这不是Angular错误。这是<div class="container left-box">
<h1 class="left-box-title">Ajouter un article</h1>
<%= simple_form_for @post, wrapper: :vertical_form do |f| %>
<%= f.error_notification %>
<%= f.input :title, label: 'Titre' %>
<p>Contenu</p>
<%= f.text_area :content, class: 'col-md-12 form-control content_post_create' %>
<%= f.input :author, label: 'Auteur' %>
<%= f.button :submit, class: "btn-primary", label: 'Mettre en ligne' %>
<%= f.button :button, "Recommencer", type: "reset", class: "btn-outline-secondary" %>
<% end %>
<%= link_to "Retour à l'accueil", posts_path %>
</div>
函数引发的JavaScript运行时错误。该错误告诉您JSON.stringify
包含循环对象引用。在运行应用程序时可以这样做,但是在将其字符串化时会出现问题:生成的JSON会变得无限长。
正如Kevin Koelzer在回答中指出的那样。问题是您写了itens
。基本上,这会将项目数组添加到项目数组中,从而创建一个循环引用。因此,写itens.unshift(itens);
可以解决您的问题,而且可能还是您打算要做的。
答案 1 :(得分:-1)
itens.unshift(itens);
这可能是
itens.unshift(iten);