为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

狐的传说 2021-08-20 17:03:44
我有一个 .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 %>
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我最终使用了一个对象,这似乎有效:


<script>

var myEvents = [

      <% loop Children %>

      {

        date: $ID,

        content: '$ID'

      },

      <% end_loop %>

    ];

<script/>

我意识到这并不能完全回答 OP,但您可以将对象转换为字符串。


查看完整回答
反对 回复 2021-08-20
?
森栏

TA贡献1810条经验 获得超5个赞

像这样尝试:

var dateArray = [<% loop $Children %>"$ID"<% if not $Last %>,<% end_if %><% end_loop %>];



查看完整回答
反对 回复 2021-08-20
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

不可能loop在脚本标签内部运行。您可以循环脚本标记或从 HTML 元素中提取数据。对于此类问题,您需要从 HTML 元素中提取数据,如下所示。


例如:


HTML


<p class="GrabDate">

    <% loop $Children %>$ID <% if not $Last %>,<% end_if %><% end_loop %>

</p>

JavaScript


var dateArray = parseInt($(".GrabDate").text());

这将使您的功能按预期运行而不会出现问题。您需要隐藏.GrabDate课程。


查看完整回答
反对 回复 2021-08-20
  • 3 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信