我有十套两个输入字段,标题和描述。我想将它们作为子项添加到数组中,所以我最终会在我的json中使用10个属性,并且每个属性又有两个子属性。我已经尝试了推动,连续,甚至是老式的+ =绝望,但没有任何工作。我必须完全忽视这一点。
这是每行的样子,虽然数字会发生变化(从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或push更好用:
$scope.ideas = [
{idea : $scope.idea1.title, $scope.idea1.description},
{idea : $scope.idea2.title, $scope.idea2.description},
{idea : $scope.idea3.title, $scope.idea3.description}
];
我不断收到点的意外标记错误(如$ scope-dot-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-app与ng-controller不在同一级别,我正在调用正确的控制器,我没有任何古怪的拼写错误。
帮助?
答案 0 :(得分: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}
];
答案 1 :(得分:0)
好吧,感谢@BenCr解决了一个问题之后,我发现了真正的问题。它在这里:
<input type="text" class="form-control" ng-click="addIdea()" ng-model="idea1.title" placeholder="title">
没有名字。无论出于何种原因,你必须有一个与ng-model匹配的名字,然后angular会很好。我已经习惯了传统验证的ID和名称,我不知道为什么我这次忘了它们。但是,一旦我重新加入,一切都表现得很好。
<input type="text" class="form-control" ng-model="idea1title" name="idea1title" placeholder="title">
另一个细节是,您不能拥有像idea-dot-title-one这样的表单名称;你必须拿出点。 Ng模型可以处理它,但名称不能,并且两者必须匹配。