AngularJS推送收藏,从收藏中显示,$watch更改
AngularJS Push in Collection, Show from Collection, $watch changes
我使用对象ITEMS来保存数据
$scope.items = [
{value:'title1', text: 'head1',
value:'title2', text: 'head2',
value:'title3', text: 'head3' }
];
当我点击"添加选项"按钮时,我需要在HTML页面中显示"值"answers"文本":
$scope.items.push(
{
value: 'value1',
text: 'text1'
}
);
我可以显示对象长度,但不能显示添加的选项。$watch($watchCollection(也不起作用。
在这个例子中,我不从输入中获取值。
在此处输入链接描述
您的$scope.items
数组声明不正确。您需要在数组中的每个单独项目周围使用大括号,如下所示:
$scope.items = [
{value:'title1', text: 'head1'},
{value:'title2', text: 'head2'},
{value:'title3', text: 'head3'}
];
你的指令一团糟。如果你只想在列表中显示项目,你甚至不需要创建一个新的指令。你可以这样做:
<select ng-model="selectedItem" ng-options="item.text for item in items"></select>
除了ng-model="addoText"
中的打字错误外,您的文本框还可以。下面的标签应该与文本框绑定到相同的变量。
key: {{addVal}} <br>and value: {{addText}}
这将在您键入文本框时更新标签。如果你不想在添加新项目之前更新标签,那么将它们绑定到一些新变量,比如:
key: {{newVal}} <br>and value: {{newText}}
最后,您的add()
函数应该如下所示:
$scope.add = function () {
$scope.items.push(
{
value: $scope.addVal,
text: $scope.addText
}
);
$scope.newVal = $scope.addVal;
$scope.newText = $scope.addText;
};
这会将新项推送到数组,并将标签上的绑定设置为新值。你不需要$watch
任何东西。
这是一个Plunker。
项目数组目前的外观存在问题。我认为你的$scope.items应该看起来像:
$scope.items = [
{
value: "value1",
text: "text1"
},
{
value: "value2",
text: "text2"
}
]
而不是全部放在一个对象中,因为当你按下时,你会创建一个新对象。
对于您的问题,调用items.value将导致未定义的。
您需要调用$scope.items中的一个对象。调用items[$scope.items.length-1]将获得添加的最新对象,这样的items[$scope.items.length-1].value和items[$scope.items.length-1].text将获得该对象中的值
相关文章:
- 使用HTML5 localStorage和jQuery添加到收藏夹/书签
- angularjs$watch获取已更改数组项的索引
- 在控制器上使用“$watch”时,为什么不更新此隐藏字段
- 指令$watch不会在更改时触发
- 角度范围$watch()等效于Rivets.js
- 强制 $scope.$watch 只开火一次
- AngularJS ng src不会在$rootScope上使用$watch进行更新
- 让ng更改等待$watch完成
- $scope变量发生更改时未触发Angular$watch
- 更改值时未触发$watch
- 在使用AngularJS时,我应该在$apply和$watch之间使用哪个
- 如果文件不存在,fs.watch是否有错误处理程序
- 连接流星中的两个收藏(帖子评论)
- $watch回调每次在浏览器中触发,但在测试期间只触发一次
- Angularjs$watch内部使用Closure
- Angular JS$编译服务导致$watch内存泄漏
- 比较$watch函数内的基元类型时出错
- 使用$watch更改html内容
- 如何从网站获得apple touch图标,如果没有;不存在,则显示收藏夹
- AngularJS推送收藏,从收藏中显示,$watch更改