0

underscore.js を使用して、JSON データhttp://pastebin.com/WrUfT1Z4をテンプレートにレンダリングしています。Firefox、Chrome、Safari、IE9 + 10 では正常に動作しますが、ie8 ではエラーがスローされます。

「SCRIPT5007: 未定義または null 参照関数コード (2)、行 6 文字 1 のプロパティ 'スラッグ' を取得できません」

IE8 デバッガーでは、以下が強調表示されます。

 _.each(things,function(thing,key,list){ 
__p+='\n\t\t\t        \n\t\t\t\t\t\t<div class="accordion-heading">\n\t\t\t\t\t\t\t<a class="no-ajaxy accordion-toggle ic-minus block collapsed" data-toggle="collapse" href="#things-'+
((__t=( thing.slug ))==null?'':__t)+
'">\n\t\t\t\t\t\t\t\t'+
((__t=( thing.title ))==null?'':__t)+
'\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div> <!-- header -->\n\t\t\t            \n\t\t\t\t\t\t<div id="things-'+
((__t=( thing.slug ))==null?'':__t)+
'" class="accordion-body collapse">\n\t\t\t\t\t\t\t<div class="accordion-inner">\n\t\t\t\t\t\t\t\t';

このエラーの原因と、それを解決するために何かできることがあるかどうか、誰にもわかりませんか? here に同様の質問がありますが、回答が私のコードにどのように適用されるかわかりません (以下の元のコード)。IE7 & IE8 の JavaScript エラー: SCRIPT5007: プロパティ 'newQuestion' の値を取得できません: オブジェクトが null または未定義です

ありがとう!

エラーの原因となっている元のアンダースコア テンプレートは次のとおりです。

<script type="text/x-underscore" id='furniture-template'>
    <div class="accordion collapse">
        <div class="accordion-group">
            <% _.each(things,function(thing,key,list){ %>

            <div class="accordion-heading">
                <a class="no-ajaxy accordion-toggle ic-minus block collapsed" data-toggle="collapse" href="#things-<%= thing.slug %>">
                    <%= thing.title %>
                </a>
            </div> <!-- header -->

            <div id="things-<%= thing.slug %>" class="accordion-body collapse">
                <div class="accordion-inner">
                    <% for(var item in thing.items) { %>
                    <div class="item">
                        <% if( thing.items[item].images == true ) { %>
                            <a class="no-ajaxy" data-target="<%= thing.items[item].slug %>-gal" class="img-link ic-cam fl" title="View an example"></a>
                        <% } %>

                        <a 
                            class="item-add ic-plus" 
                            data-title="<%= thing.items[item].title %>" 
                            data-slug="<%= thing.items[item].slug %>"
                            data-img="<%= thing.items[item].images %>"
                            data-shorthand="<%= thing.items[item].shorthand %>"
                            data-price="<%= thing.items[item].price %>"
                        >
                            <%= thing.items[item].title %>
                        </a>
                    </div>
                    <% } %>
                </div> <!-- inner -->
            </div> <!-- accordion-body -->

        <% }); %>
        </div>
    </div>
</script>

$(document).ready(function(){
    var template = $("#furniture-template").html();
        $furnitureList = _.template(template, {things: things});
});
4

1 に答える 1

1

mu が短すぎると指摘された問題は、JSON 配列の末尾にエラーの原因となった末尾のコンマがあったことでした。コンマを削除すると、問題が解決しました。

于 2013-06-14T21:07:11.590 に答える