我使用的SoundCloud API为键入到搜索框,像这样的查询获取曲目:NG重复重复,但是是空的
$scope.tracks = [];
$scope.updateResults=function(song){
if(song.length==0){
$scope.tracks = [];
}
if(song.length>3){
SC.get('/tracks', { q: song, license: 'cc-by-sa' }, function(tracks) {
$scope.tracks = tracks;
//$scope.$apply() doesn't work either
});
}
}
$scope.updateResults
每当东西输入到搜索栏被调用。这一切工作正常。我甚至尝试过记录$scope.tracks
,这是一个数组,它填充了与搜索结果匹配的曲目。根据Soundcloud API参考,每个轨道都有一个title
属性。我通过这样做了测试:
console.log($scope.tracks[0].title)
,并且我得到了一个很好的标题字符串。
现在在我的ng-repeat
,这是写像这样:
<ul>
<li ng-repeat="track in tracks">{{track.title}}</li>
</ul>
我得到几个要点,但它们都是空的。换句话说{{track.title}}
不存在?我测试过这是一个有效的属性。此外,我知道$scope.tracks
正在填充,因为确实有列表项,但它们都是空的。
感谢您的帮助!
编辑:我做了一些关于ng-repeat
的调查,并了解到它的更新如.push()
......应该仍然不能解释这种奇怪的行为,但它可能有助于识别问题。
我怀疑这个问题与'ngRepeat'无关。尝试在'ngRepeat'之外写'{{tracks [0] .title}}来验证。标题是什么样的? – gkalpak
适合我** http://jsfiddle.net/moogs/4pmpY/2/** –
我发布了一个答案,但我还有一个问题。你只使用一个视图吗?曲目是否与搜索框显示在同一页面上? –