1

Spotify の Apps API の v1.0 プレビューを使用しています。List.forPlaylist(list, opt_options) の opt_options パラメータを指定してカスタム リストを作成しようとすると、DOM 要素が見つからないというエラーが発生します。これはほぼ間違いなく私の単純な実装によるものです。

私の質問は、カスタム getItem 関数でこの opt_options を使用する方法の例を誰かが持っていることですか? ドキュメントは、私が何を返したり入力したりすることを意図しているかについて明確ではありません。

私の実装(プレイリストがロードされたリストです):

listView.forPlaylist(playlist, { getItem : function (item, index) {
            console.log(item);
            console.log(index);
            return $("<span>hello, world</span>");
        }
    }

このエラーは毎回:

DOMException code: 8 message: "NOT_FOUND_ERR: DOM Exception 8" name:
"NOT_FOUND_ERR" stack: "Error: An attempt was made to reference a Node
in a context where it does not exist.?    at f.createItems
($views/scripts/list/view.js:16:147)?    at e.b
($views/scripts/list.js:16:102)?    at e.Observable.dispatchEvent
($api/scripts/models.js:4:322)?    at Promise.f.snapshot
($views/scripts/list/model.js:9:244)?    at Promise.done
($api/scripts/models.js:6:157)?    at f.snapshot
($views/scripts/list/model.js:7:241)?    at e.more
($views/scripts/list.js:4:138)?    at f.moreWithLimit
($views/scripts/list/model.js:17:127)?    at f.checkResizeEdge
($views/scripts/list/view.js:13:457)?    at f.init.b
($views/scripts/list/view.js:3:3)"

どんな考えでも大歓迎です。例、さらにそうです;-)

4

1 に答える 1

1

jQueryオブジェクトではなく、DOM要素を返す必要があります。そのためには、あなたは戻る必要があります

$("<span>hello, world</span>")[0];

戻る代わりに

$("<span>hello, world</span>");

jQueryオブジェクトとDOM要素の違いについての詳細があります。

ここに、Spotifyアプリにリストビューを挿入する方法の完全な例があります。

require([
  '$api/models',
  '$views/list#List'
], function (models, List) {
  'use strict';

  var playlist = models.Playlist.fromURI('spotify:user:nowplaylist:playlist:6QHyDeqaPNZ0nyLFJbSKTL');
  var listView = List.forPlaylist(playlist, {
    getItem : function (item, index) {
        console.log(item);
        console.log(index);
        return $("<span>hello, world</span>")[0];
    }
  });

  document.body.appendChild(listView.node);
  listView.init();
});
于 2013-03-16T10:28:19.943 に答える