Angularjs 将字符串与多复选框连接起来
Angularjs concatenate string with multi-checkbox
我正在尝试在选中多个复选框时刷新并连接字符串。
例如,当选中'apple'
和'banana'
时,应$scope.strin
g ='ab'
,然后当未选中'banana
' 时,应保留$scope.string
'a'
。
我所做的确实连接了,但是$scope.string不会删除旧值,它仍然是='aba'
这是我对JsFiddle的尝试。
您可以看到选中所有复选框后,它给了我aababcabcd
谢谢
我已经更新了你的代码:http://jsfiddle.net/d3ruexuv/1/
文本未清除,因为您只是将项目附加到当前值,而不是完全创建新字符串。现在您可以看到始终首先创建一个空字符串:
var newText = "";
以及与之连接的选定项目
每次
$scope.watch触发时都需要刷新$scope.text属性
$scope.$watch('items', function() {
$scope.text = "";
for(var i = 0; i < $scope.items.length; i++) {
if($scope.items[i].selected === true){
$scope.text += $scope.items[i].prefix;
}
}
}, true);
只需在循环之前添加$scope.text = "";
即可。
这是一个固定代码:
$scope.text = "";
for(var i = 0; i < $scope.items.length; i++) {
if($scope.items[i].selected === true){
$scope.text += $scope.items[i].prefix;
}
}
发生这种情况是因为您只+=
字符串,这意味着它只会增长。您永远不会将其重置回""
(空字符串)。如果您在每次更新之前执行此操作,则结果将是正确的。
发生这种情况是因为您的循环中有 +=,但在进入循环之前您没有清除它。 在循环之前清除变量,一切就绪。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- 编写脚本以在提交之前将复选框值连接到字符串中
- Javascript:创建循环以连接选中复选框的结果
- Angularjs 将字符串与多复选框连接起来
- 为什么我的复选框不与我的jQuery连接
- 将我的复选框与动态选项卡连接
- 可以连接KML层以在一个复选框中显示它们(Google Maps)