AngularJS $ watchCollection给了我错误的价值

时间:2016-07-08 17:52:55

标签: javascript angularjs list input collections

我对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个不同的值。

0 个答案:

没有答案