[英]Pushing into JSON suddenly not working
我是AngularJS的初学者,并且在推入JSON中的数组时遇到问题。 (我希望我使用正确的术语)
//I have a JSON that looks like this
var items = [
{name:[
{names: 'John', msg:[""]}, {names: 'Dolly', msg:[""]}
]}
];
下面的代码在Controller内部:
$rootScope.items = People.list();
$rootScope.name = "John";
for(var i=0;i<$rootScope.items.name.length;i++)
{
if (name== $rootScope.items.name[i].names)
{
People.addcomment(user.comment,i);
}
}
下面的代码在我的服务中称为“人”:
this.addcomment = function(comment,x) {
items[0].name[x].msg.push(comment);
}
this.list = function () {
return items[0];
}
JSON在服务中声明。 HTML代码如下:
<textarea placeholder="Enter comment" ng-model="user.comment"></textarea>
<button ng-repeat = "x in items.name" ng-if="name==x.names"
ng-click="addcomment(user,name)">Submit</button>
现在,我的问题是,单击“提交”按钮后,我在teaxtarea中键入的“消息”没有存储在与“ John”相对应的“ msg”数组中(在JSON内)。 怎么了?
之前,我已经在Controller内拥有了Service的全部代码,然后这些代码就可以正常工作了。 我想我传递给服务中函数的参数一定做错了。
有人可以帮我吗?
因此,您的应用程序的工作流程如下:
为了使这两个范围保持同步,请向您的控制器添加一个函数:
function updateList() {
$rootScope.items = People.list();
}
在调用People.addComment()之后,调用此方法。
最后,也许这只是一个意见,您应该更改JSON结构。 如果这样设置数据,则将变得更加清晰:
var items = [
{name: 'John', msg:[]},
{name: 'Dolly', msg:[]}
];
现在您有了一个对象数组。 现在,您的People.list()函数将返回items
并且您可以通过调用items.push({name: 'Judith', msg:[]});
添加新的Person items.push({name: 'Judith', msg:[]});
并且您可以添加带有items[i].msg.push("This is a new message");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.