字段长度始终= 1

时间:2019-01-30 17:41:38

标签: javascript ajax

Reuters Ajax Solr tutorial之后,我遇到了获取字段长度的问题。 问题出在“模板”上,但我相信它可能源于另一个js文件。

教程的“模板”

template: function (doc) {
    var snippet = '';
    if (doc.text.length > 300) {
      snippet += doc.dateline + ' ' + doc.text.substring(0, 300);
      snippet += '<span style="display:none;">' + doc.text.substring(300);
      snippet += '</span> <a href="#" class="more">more</a>';
    }
    else {
      snippet += doc.dateline + ' ' + doc.text;
    }

    var output = '<div><h2>' + doc.title + '</h2>';
    output += '<p id="links_' + doc.id + '" class="links"></p>';
    output += '<p>' + snippet + '</p></div>';
    return output;
  },

我的“模板”

template: function (doc) {
    var snippet = '';
    if (doc.Solution.length > 200) {
            snippet += doc.Solution.substring(0, 200) + ' ' + doc.date;
            snippet += '<span style="display:none;">' + doc.Solution.substring(200);
            snippet += '</span> <a href="#" class="more">more</a>';
    }
    else {
        snippet += doc.Solution.length + '<br>' + doc.date + '';
    }
    var output = '<div><br><b>' + doc.Problem + '</b><br>';
    output += '' + snippet + '';
    output += ' ID #' + doc.id + '</div>';
    return output;
},

如果字段超过一定长度,则本节应允许使用“更多”按钮。使用我的模板,这是我的输出:

output

我的“解决方案”字段是一个长文本字段,在我的solr(7.5)模式中定义为text_general。

我尝试过String().toString,但是这些问题也给我带来了麻烦。

从整体上来说,我对CS还是很陌生,但似乎我的字段表现为数组或布尔值? 在本教程中,他们拥有较旧的solr版本,但获得长度的字段也是text_general。我不确定我下一步应该去哪里。

PS:这是本教程中代码的结构方式,我的一个朋友很困惑,因为它似乎并不是最佳实践。

我的设置在某些方面与本教程有所不同,我使用的是我的JQuery版本(v3.3.1),它们使用的是我没有的样式表。

我的html文档的<head>

    <title>Testing Solr</title>
    <meta charset="UTF-8">
    <!--style sheets and links in tutorial source code--
    <link rel="stylesheet" href="reuters.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/smoothness/jquery-ui.css">
    <!--my downloaded copy of jquery-->
    <script src="script/jquery.js"></script>
    <!-- mentioned in tutorial -->
    <script src="script/our.js"></script>
    <script src="script/Core.js"></script>
    <script src="script/AbstractManager.js"></script>
    <script src="script/Manager.jquery.js"></script>
    <script src="script/Parameter.js"></script>
    <script src="script/ParameterStore.js"></script>
    <script src="script/AbstractWidget.js"></script>
    <script src="script/ResultWidget.js"></script>

切换到使用除reuters.css之外的其他链接,仍然显示1.。

使用console.log(doc.Solution);确实可以充当数组。

["solution to unlock    "]
0: "solution to unlock    "
length: 1
__proto__: Array(0)

在教程的ResultWidget.js中添加console.log(doc.text);会将纯文本返回到控制台。将其字段读取为字符串时,可能将我的字段读取为数组的可能原因是什么?

0 个答案:

没有答案