2015-05-07 139 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()''',也完美地工作 –