2013-06-04 25 views
1

我在使代码正常工作时遇到问题。我可以使用SC.get()中的'q','bpm'或'genres'参数进行静态搜索。然而,当我试图使它的动态具有可变(“类”)......这些值传递正确关闭,但执行的搜索不匹配:无法更改使用Soundcloud API进行动态搜索

function getTracks(){ 
    query = document.getElementById('search').value; 
    category = document.getElementById('category').value; 

    SC.get('/tracks', { category : query}, function(tracks) { 
       console.log(query); 
     console.log(category); 
      ... rest of search code 
      } 

内部HTML:

 <form> 
      Search by Title: <input type="text" name = "search" id = "search"> 
          <select id = "category"> 
          <option value = "genres">Genre</option> 
          <option value = "q">Title</option> 
          <option value = "bpm">BPM</option> 
          </select> 

     <input type="button" onclick = "getTracks()" value="Submit"/> 
     </form> 

有什么我失踪? Console.log为“搜索”和“类别”值捕获正确的值,但API正在返回,就好像它们为空。

回答

1

在您的示例中,{ category: query }category指定为关键名称,不会将变量category指定为关键名称。这在Javascript中有点不一致。

你想这样做:

parameters = {}; 
parameters[category] = query 

SC.get('/tracks', parameters, function(tracks… 
+0

还有没有这样的参数为'中的SoundCloud API –

+1

谢谢你,我不认识的哈希category'!这很奇妙。 –