我对AngularJS $ watchCollection有疑问。这是我第一次使用这个功能,所以我不知道我做错了什么,但我得到的价值不是好的。这是我的html代码(在ng-repeat中):
<input type="checkbox"
aria-label="..."
ng-disabled="!userOwnsScore(song)"
ng-model="selDeleteSongs[song.idsong]"
ng-true-value="'{{song.idsong}}'"
ng-false-value="'undefined'">
这是我的$ watchCollection函数:
$scope.$watchCollection('selDeleteSongs', function(newVal) {
// debugger
console.log(newVal);
});
当我在Firefox上调试我的代码时,我得到的结果是什么(selDeleteSongs列表):
[159: 158]
现在ng-model值是好的:159,我的值也应该是159,因为我使用的是#song.idsong&#39;对于两者(ng-model和ng-true-value)。
为了让您了解情况:我有一个歌曲列表,每次添加,删除或更新歌曲时都会更新此列表。现在,一旦列表更新,我的视图就会发生变化。因此,当我选择一首特定的歌曲时,我应该得到它真实的价值,我确实得到了所有的价值,但是有了真正的价值&#39;。我不明白歌曲是怎么回事。在ng-model和ng-true-value中给出了2个不同的值。