2015-05-07 140 views
1

这应该不难,但在阅读大量示例后,我仍然无法找到答案,或者至少以任何优雅的方式找出答案。我读过很多关于SO的答案,如thisthisthis。奇怪的是我找不到任何帮助。从div角度删除内容

我在做什么,并试图实现?

我打电话给一个API,它返回一组和弦和歌词。当我调用一次API时,这种方式非常完美,但是当我再次搜索和弦和歌词时,它们会被添加到div的末尾。任何人都可以建议什么角度的方法或解决方案,我应该使用从div中删除内容填充新数据之前?

这里是代码我目前正在使用:

$scope.getSongs = function(){ 

    $http({ 
     url: 'http://api.guitarparty.com/v2/songs/?query=' + $scope.song, 
     dataType: 'json', 
     method: 'GET' 
    }).success(function(response){ 
     var myEl = angular.element(document.querySelector('#chords')); 

     ////something needs to go here.....///// 

     myEl.append(response.objects[0].body_chords_html); 

    }); 
+0

如果要替换内容使用myEl.html()而不是追加。它是追加的,因为你正在使用追加。 https://docs.angularjs.org/api/ng/function/angular.element – ribsies

+0

欢呼@ribsies - 工作也款待 –

回答

5

如何:

myEl.empty() 

SO Question

+0

谢谢@ Vlad274,我怎么能找不到。完美工作。我不是在寻找jquery函数,而是猜测它是包含一些jquery功能的角色,这包括了一些jquery功能,包括 –

+0

@PaulFitzgerald是的,Angular将使用完整的jQuery库(如果有的话),否则它使用子集“jQLite”。谢天谢地,那包括.empty()(参考:https://docs.angularjs.org/api/ng/function/angular.element) – Vlad274

+0

我知道它随jqlite一起发货,但在页面前没有看到这个链接在他们的文档上。看着后,我没有意识到你包括整个jQuery库。大!欢呼 –

0

采取什么是你的API返回,对象的数组? 试试这个

$scope.getSongs = function(){ 

    $http({ 
     url: 'http://api.guitarparty.com/v2/songs/?query=' + $scope.song, 
     dataType: 'json', 
     method: 'GET' 
    }).success(function(response){ 
     var myE1 = []; 
     var myEl = angular.element(document.querySelector('#chords')); 

     ////something needs to go here.....///// 

     myEl.append(response.objects[0].body_chords_html); 

    }); 
+0

'''response.objects [0] .body_chords_html'''实际上是一个带有html标记的完整歌曲 –

+0

是的,在追加数据之前使变量myE1为空。 – Ritesh

+0

另一种方式是使用'''html()''',也完美地工作 –