Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图访问js文件中的ejs数组_Javascript_Arrays_Node.js_Express_Ejs - Fatal编程技术网

Javascript 试图访问js文件中的ejs数组

Javascript 试图访问js文件中的ejs数组,javascript,arrays,node.js,express,ejs,Javascript,Arrays,Node.js,Express,Ejs,我将信息发送到包含数组的客户端,并且只显示数组的3个元素,因为我希望具有分页效果。我想在js文件中编写分页代码 在file.js中 $(function(){ $(".pageLinks a").on("click", function(e){ e.preventDefault(); var pageNum = $(this).attr("id") var test = JSON.stringify(populated) // I want

我将信息发送到包含数组的客户端,并且只显示数组的3个元素,因为我希望具有分页效果。我想在js文件中编写分页代码

在file.js中

$(function(){
    $(".pageLinks a").on("click", function(e){
        e.preventDefault();
        var pageNum = $(this).attr("id")
        var test = JSON.stringify(populated) // I wanted populated to be the array from node
                       //doesn't have to have the stringify part
                       // I know I can't do this prob bec. it's not in an ejs file but I wanted something like that
        console.log(test)

    })
})
我可以在ejs文件中访问它

          <% var index = Math.floor( populated.reviews.length /3)%>
            <div class = "pageLinks">
                <%for(var i = 0; i < index; i++){%>
                    <a href= "<%=i + 1%>" id = "<%=i%>"><%= i + 1 %> </a>
                <%}%>
            </div>
        </div> <!--reviewSide-->

你是对的,你不能以同样的方式访问(静态)js文件中的原始对象

但是,您可以将其填充到ejs文件中的全局变量中,如下所示:

<script type="text/javascript">
    var populated = <%-JSON.stringify(populated)%>;
</script>
$(function(){
$(".pageLinks a").on("click", function(e){
    e.preventDefault();
    var pageNum = $(this).attr("id")
    if (typeof(populated) != "undefined"){  
        // you want to check to make sure this exists before trying to use
        // it, just in case someone manages to click a page link before the
        // code in your .ejs file has run. 
        var test = JSON.stringify(populated) 
        console.log(test)
    }
})
})
…或在加载时传递到external file.js,只要您将某些内容公开给它可以调用的全局范围。当前脚本将所有内容包装在匿名函数中,但您可以将其包装在命名函数中,如下所示:

<script type="text/javascript">
    var populated = <%-JSON.stringify(populated)%>;
</script>
$(function(){
$(".pageLinks a").on("click", function(e){
    e.preventDefault();
    var pageNum = $(this).attr("id")
    if (typeof(populated) != "undefined"){  
        // you want to check to make sure this exists before trying to use
        // it, just in case someone manages to click a page link before the
        // code in your .ejs file has run. 
        var test = JSON.stringify(populated) 
        console.log(test)
    }
})
})
.ejs文件:

<script type="text/javascript">
    initialiseMyAwesomeFunction( <%-JSON.stringify(populated)%> );
</script>

你是对的,你不能以同样的方式访问(静态)js文件中的原始对象

但是,您可以将其填充到ejs文件中的全局变量中,如下所示:

<script type="text/javascript">
    var populated = <%-JSON.stringify(populated)%>;
</script>
$(function(){
$(".pageLinks a").on("click", function(e){
    e.preventDefault();
    var pageNum = $(this).attr("id")
    if (typeof(populated) != "undefined"){  
        // you want to check to make sure this exists before trying to use
        // it, just in case someone manages to click a page link before the
        // code in your .ejs file has run. 
        var test = JSON.stringify(populated) 
        console.log(test)
    }
})
})
…或在加载时传递到external file.js,只要您将某些内容公开给它可以调用的全局范围。当前脚本将所有内容包装在匿名函数中,但您可以将其包装在命名函数中,如下所示:

<script type="text/javascript">
    var populated = <%-JSON.stringify(populated)%>;
</script>
$(function(){
$(".pageLinks a").on("click", function(e){
    e.preventDefault();
    var pageNum = $(this).attr("id")
    if (typeof(populated) != "undefined"){  
        // you want to check to make sure this exists before trying to use
        // it, just in case someone manages to click a page link before the
        // code in your .ejs file has run. 
        var test = JSON.stringify(populated) 
        console.log(test)
    }
})
})
.ejs文件:

<script type="text/javascript">
    initialiseMyAwesomeFunction( <%-JSON.stringify(populated)%> );
</script>

您的意思是我可以将代码中的
var-populated
部分放在ejs文件的脚本标记中,并且我可以访问
js文件中的
populated
变量吗?就这样?我可以根据
填充的
变量中的数据进行点击处理,该变量是js文件中的一个数组。我进行了编辑,希望澄清:)您只能将
内容放入.ejs文件中,所以您需要在.ejs中执行该部分,但是你可以把它传递给静态的.js文件,假设你可以调用全局范围中的某个东西,或者,如果您在全局范围内设置了它要查找的内容。您的意思是我可以将代码中的
var-populated
部分放在ejs文件的脚本标记中,并且我可以访问
js文件中的
populated
变量吗?就这样?我可以根据
填充的
变量中的数据进行点击处理,该变量是js文件中的一个数组。我进行了编辑,希望澄清:)您只能将
内容放入.ejs文件中,所以您需要在.ejs中执行该部分,但是您可以将其传递给static.js文件,前提是您可以调用全局范围中的某些内容,或者您在全局范围中设置了它要查找的内容。