猿问

如何使用 SilverStripe 循环填充 JavaScript 数组

我有一个 .SS 文件,在脚本标签内有一个 JavaScript 数组,需要用来自后端的数据填充。


数据是不同的日期,JavaScript 数组在填充后需要看起来像这样:


var dateArray = ['01/02/2014', '01/03/2016', '05/02/2014'];

这是我到目前为止所拥有的:


<script>

  var dateArray = <% loop $Children %>[$ID],<% end_loop %>;

  var contentArray = <% loop $Children %>[$IDcontent],<% end_loop %>;

</script>

我也试过这个:


<% if $Children %>

<% loop $Children %>

    <script>

    var dateArray = [$ID];

    var contentArray = [$IDcontent];

    </script>

<% end_loop %>


狐的传说
浏览 143回答 3
3回答

红颜莎娜

我最终使用了一个对象,这似乎有效:<script>var myEvents = [&nbsp; &nbsp; &nbsp; <% loop Children %>&nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; date: $ID,&nbsp; &nbsp; &nbsp; &nbsp; content: '$ID'&nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; <% end_loop %>&nbsp; &nbsp; ];<script/>我意识到这并不能完全回答 OP,但您可以将对象转换为字符串。

森栏

像这样尝试:var&nbsp;dateArray&nbsp;=&nbsp;[<%&nbsp;loop&nbsp;$Children&nbsp;%>"$ID"<%&nbsp;if&nbsp;not&nbsp;$Last&nbsp;%>,<%&nbsp;end_if&nbsp;%><%&nbsp;end_loop&nbsp;%>];

拉风的咖菲猫

不可能loop在脚本标签内部运行。您可以循环脚本标记或从 HTML 元素中提取数据。对于此类问题,您需要从 HTML 元素中提取数据,如下所示。例如:HTML<p class="GrabDate">&nbsp; &nbsp; <% loop $Children %>$ID <% if not $Last %>,<% end_if %><% end_loop %></p>JavaScriptvar dateArray = parseInt($(".GrabDate").text());这将使您的功能按预期运行而不会出现问题。您需要隐藏.GrabDate课程。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答