2014-04-10 23 views
0

学习python让我忘记了所有的角色,这就是我的故事,我坚持不懈。它甚至让我忘记了我的谷歌技能,因为我无法在任何地方找到类似的问题。最接近的可能是How to append to a json object in angular js,除此之外也无效。在数组中添加ng-model值作为分组的孩子

我有10组两个输入字段,标题和说明。我想将它们作为子元素添加到数组中,所以我最终将在我的json中拥有十个属性,并且每个属性又具有两个子元素属性。我尝试过推,concat,即使是老式的+ =在绝望中,但没有任何工作。我必须完全错过这个明显的。

以下是各行的样子,虽然数量变化(从1到10):

<label class="sr-only" for="shorttitle1">short title</label> 
<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.title" placeholder="title"> 
<label class="sr-only" for="description1">description</label> 
<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.description" placeholder="description"> 

在我的控制器,下面是我根据上面的链接试图版本,这是不工作比任何CONCAT或推好做:

$scope.ideas = [ 
     {idea : $scope.idea1.title, $scope.idea1.description}, 
     {idea : $scope.idea2.title, $scope.idea2.description}, 
     {idea : $scope.idea3.title, $scope.idea3.description} 
]; 

我不断收到了意想不到的点标记的错误(如,在$范围-点idea1点)。当我把简单的文本作为一个测试时,我得到了一个意外的右括号的令牌错误。

我甚至试着做一个watchCollection,只是为了看看控制器是否会注意,但我什么都没有。我试着只看着idea1,然后是$ scope.idea1,然后是$ scope.idea1.title,watchCollection就在那里。

这就是我想要的它看起来就像你,大致有:

$scope.ideas = [ 
    { 
     type : 'title goes here', 
     description : 'description goes here' 
    },{ 
     type : 'title goes here', 
     description : 'description goes here' 
    },{ 
     type : 'title goes here', 
     description : 'description goes here' 
    } 
]; 

我已检查真的很明显 - NG-应用程序不在同一水平NG-控制器,I打电话给正确的管制员,我没有任何古怪的拼写错误。

帮助?

回答

1

您错过了关闭对象定义的描述。

$scope.ideas = [ 
    {idea : $scope.idea1.title, desc: $scope.idea1.description}, 
    {idea : $scope.idea2.title, desc: $scope.idea2.description}, 
    {idea : $scope.idea3.title, desc: $scope.idea3.description} 
]; 
+0

好吧,那清除了一个问题,让我发现*真实*问题。谢谢! – kl02

0

好吧,在通过@BenCr得到一个问题之后,我发现了真正的问题。它在这里:

<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.title" placeholder="title"> 

没有名字。无论出于何种原因,你必须有一个与ng-model相匹配的名字,然后角将会很好玩。我很习惯于传统验证的ID和名称,我不确定这次为什么我忘了它们。但是,一旦我加回来,一切都表现得很好。

<input type="text" class="form-control" ng-model="idea1title" name="idea1title" placeholder="title"> 

另一个细节是,你不能有一个表格名称,如idea-dot-title-one;你必须把点击出来。吴模式可以处理它,但名称不能,并且两者必须匹配。

+0

这不太可能是真正的答案。看看这两条线。第一个例子'ng-click =“addIdea()”ng-model =“idea1.title”',第二个例子'ng-model =“idea1title”'。我有很多没有名字的控件。我很高兴你已经修复了你的解决方案,但我不认为你完全理解你是如何修复它的。删除名称,然后重试。 – BenCr

+0

我摆脱了ng-click;它没有做任何事情。当我删除名称时,失败。当我的名字不同于ng模型时,失败。当我添加一个点来匹配ng-model时,失败。唯一的工作时间是name = ng-model时,AND名称存在。 – kl02

+0

查看将输入控件绑定到列表中的对象的示例http://plnkr.co/edit/t3sSh1RPzVeeWRy9ybLj?p=preview您可以看到字段名称与模型中属性的名称无关。 – BenCr