icanhaz /小胡子环路(通过元件迭代)JS错误(icanhaz/mustache loop (

2019-07-27 05:31发布

我试图让icanhaz /小胡子循环的工作,如在此定义的答案和我得到以下浏览器控制台错误:

Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option>
                        <option value="2">Second</option>

不知道为什么。 我好不容易才发现这是导致问题的行:

ich.myTemplate(listOfStuff);

这是我整个的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/transitional.dtd">
<html>
    <head>
        <title>icanhaz.js demo</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
        <script type="text/javascript" src="https://raw.github.com/HenrikJoreteg/ICanHaz.js/master/ICanHaz.js"></script>
    </head>
    <body>

    <select id="mySelectBox">
    </select>

    <script id="myTemplate" type="text/html">
        {{#stuff}}
        <option value="{{key}}">{{desc}}</option>
        {{/stuff}}
    </script>

    <script>
        $(document).ready( function() {

            var listOfStuff = {stuff: [ 
                    {key: "1", desc: "First"},
                    {key: "2", desc: "Second"}
                ]};
            var x = ich.myTemplate(listOfStuff);
            $("#mySelectBox").append(x);
        });
    </script>

</body>
</html>

感谢您的任何建议!

Answer 1:

最后,我发现的错误。 这是jQuery的版本问题 - 1.9.1中返回错误和1.8.3没有。 比较这些演示:

  • http://tinyurl.com/cb48wb9 -的jQuery 1.9.1
  • http://tinyurl.com/bnf4xld -的jQuery 1.8.3

为1.9.1版本,看看JavaScript控制台。

此外,如果我改变

<script id="myTemplate" type="text/html">
    {{#stuff}}
    <option value="{{key}}">{{desc}}</option>
    {{/stuff}}
</script>

<script id="myTemplate" type="text/html">
    {{#stuff}}<option value="{{key}}">{{desc}}</option>{{/stuff}}
</script>

为1.9.1,它也能正常工作。


编辑:这是一个开在icanhaz / github上的问题 。 如果你愿意,请帮忙修复这个bug!



Answer 2:

var listOfStuff = {stuff: [ 
                  {key: "1", desc: "First"},
                  {key: "2", desc: "Second"}
              ]};
var html = ich.myTemplate(listOfStuff);
$("#mySelectBox").append($(html));

尝试吗?



文章来源: icanhaz/mustache loop (iterate through elements) js error