【发布时间】:2015-07-08 11:40:07
【问题描述】:
我是 AngularJS 的初学者,我在推入 JSON 中的数组时遇到问题。 (我希望我使用的是正确的术语)
//I have a JSON that looks like this
var items = [
{name:[
{names: 'John', msg:[""]}, {names: 'Dolly', msg:[""]}
]}
];
以下代码在控制器内部:
$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);
}
}
以下代码在我的名为“People”的服务中:
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 的完整代码,并且该代码用于正常工作。我想我必须在传递给服务中函数的参数上犯了一些错误。
有人可以帮帮我吗?
【问题讨论】:
-
我看到您的
People服务有一个返回items[0]的list函数,但您的服务是否返回了list函数本身? -
好的,我不明白你在说什么:) 服务如何返回函数?
-
没问题。在 AngularJS 中,服务需要返回对象。我将在答案中发布一个示例。
-
您知道,我在服务中还有其他一些功能,它们似乎都没有给我带来问题。除了将 'comment' 推入 'msg' 数组之外,我可以更改任何一个 'names' 的值,我可以使用 splice() 等。只是这个特殊的东西拒绝工作......
-
有意思,让我再看看。
标签: javascript html json angularjs ionic-framework