List.JS - 无法读取未定义的属性'childNodes'

alp*_*rim 7 html javascript listjs

我似乎无法弄清楚这一点.我已经尝试过$(document).ready但仍然不适合我.我还尝试专门为这两个值名创建一个for循环,以将结果保存到var并以这种方式传递它.我也尝试将输入与class和id一起放在父div和outside之外.基本上就像在导航栏中一样.使用list.js和knockout.js btw.我使用foursquares api使用ajax请求获取我的场地.

JS:

        var options = {
        valueNames: ['name', 'category']
    };

    var userList = new List('search', options);
Run Code Online (Sandbox Code Playgroud)

HTML:

<body>
<nav>
    <h1 class="formattedH1">Downtown SA,TX</h1>
    <span>
      <input type="search" placeholder="Search" class="search" id="search">
      <input type="button" class="sort searchButton" value="List"></input>
    </span>
</nav>
<div id="map" class="map"></div>
<div class="list">
    <input type="search" placeholder="Search" class="search" id="search">
    <h1>My Top 5</h1>
    <!-- Square card -->
    <div class="card" id="favViewModel" data-bind="foreach: favList">
        <div class="expand">
            <h2 class="venueName" data-bind="text:name"></h2>
        </div>
        <div class="cardSupport" data-bind="attr: {src: image()}">
        </div>
        <div class="cardSupport" data-bind="text:address">
        </div>
        <a data-bind="attr: {href: website()}">Website</a>
    </div>
    <h1>Foursquare Recommended</h1>
    <div class="card" id="recViewModel" data-bind="foreach: recommendedSpotList  ">
        <div class="expand">
            <h2 class="venueName" data-bind="text:name"></h2>
        </div>
        <div class="cardSupport" data-bind="text:location">
        </div>
        <div class="cardSupport" data-bind="text:category">
        </div>
        <div class="cardSupport" data-bind="text:rating">
        </div>
    </div>
    <script src="js/tester123.js"></script>
Run Code Online (Sandbox Code Playgroud)

mag*_*ich 10

我在项目的github页面上修改了一些相同的问题,只要确保与示例相同的名称,它将工作,一切都必须在一个<div>,ul必须有class 列表

像这样

<div id="hacker-list">
   <ul class="list"></ul>
</div>
Run Code Online (Sandbox Code Playgroud)

链接:https://github.com/javve/list.js/issues/9

  • 谢谢,我错过了ul元素的列表类.让我难过多年! (3认同)

alp*_*rim 2

我在浏览其他类似项目时找到了答案,现在很简单。认为这可能会对遇到这种情况的人有所帮助。因为我正在进行 ajax 调用,所以我必须将对 ko.applybindings 的调用放在 ajax 请求中。绑定超出了范围,如果您认为这是有意义的,特别是如果您的请求失败的话。为什么还要尝试仍然绑定请求的值。HTML如上,JS ajax请求请看下面:

JS:

$.ajax({
    url: 'https://api.foursquare.com/v2/venues/explore',
    dataType: 'json',
    data: 'data',
    async: true,
    success: function(data) {

        venues = data['response']['groups'][0]['items'];

        //This is where I had to place the binding to get it to render properly.
        ko.applyBindings(new recommendedViewModel(), document.getElementById('recViewModel'));

    },
    error: function() {
        alert("An error occurred.");
    }
});
Run Code Online (Sandbox Code Playgroud)