1

我在使此代码正常工作时遇到问题。我可以使用 SC.get() 中的 'q'、'bpm' 或 'genres' 参数进行静态搜索。但是,当我尝试使用变量(“类别”)使其成为动态时......这些值被正确传递,但执行的搜索不匹配。:

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 捕获了 'search' 和 'category' 值的正确值,但 API 返回时就好像它们为空一样。

4

1 回答 1

1

在您的示例中,{ category: query }将其分配category为键名,而不是将变量category分配为键名。这在 Javascript 中有点不一致。

你想这样做:

parameters = {};
parameters[category] = query

SC.get('/tracks', parameters, function(tracks…
于 2013-06-05T09:47:33.050 回答