当我检查多个复选框时,我正在尝试刷新并连接一个字符串。
例如,当选中'apple'
和'banana'
时,$scope.strin
g应为='ab'
,然后取消选中'banana
'时,{{1}应留下$scope.string
。
我做了什么连接,但$ scope.string不会删除旧值,它仍然是'a'
这是我对JsFiddle的尝试。
您可以看到选中所有复选框后,它会给我='aba'
由于
答案 0 :(得分:3)
我已更新您的代码:http://jsfiddle.net/d3ruexuv/1/
文本无法清除,因为您只是将项目附加到当前值,而不是完全创建新字符串。您现在可以看到始终首先创建一个空字符串:
var newText = "";
和选定的项目连接到
答案 1 :(得分:2)
每次$ scope.watch触发
时,您都需要刷新$ scope.text属性VideoInfo = mediaFile.Path;
ImageSource = ImageSource.FromStream(() => mediaFile.Source);
// add this line
imageData = ReadStream(mediaFile.Source);
答案 2 :(得分:1)
只需在循环前添加$scope.text = "";
for(var i = 0; i < $scope.items.length; i++) {
if($scope.items[i].selected === true){
$scope.text += $scope.items[i].prefix;
}
}
。
这是fixed code:
+=
这种情况正在发生,因为你只对字符串""
,这意味着它只会增长。你永远不会将它重置回PopulateContactLabels
(空字符串)。
如果您在每次更新之前都这样做,那么结果将是正确的。
答案 3 :(得分:0)
这种情况正在发生,因为你的循环中有+ =,但是在进入循环之前你没有清除它。在循环之前清除变量并且你已经完成了设置。