2017-04-20 47 views
1

我将js函数插入到html中,现在我从HTML中取出JS代码来分离js文件,从而导致JS函数undefined错误?为什么?以及如何解决它?从HTML中取出JS代码以分离js文件,导致错误

@(Html.Kendo().Grid<Model>() 
     .Name("grid") 
     .Columns(columns => 
     { 

      columns.Bound(p => p.Name); 

     }) 

     .Events(ev => 
     { 
      ev.DataBound("initMenus"); 

     }) 

    ) 
<script> 
function initMenus(e) { 
    $(".templateCell").each(function() { 
     eval($(this).children("script").last().html()); 
    }); 
} 
</script> 

现在我的js功能分开,test.js:

<script src="~/js/test.js"></script> 

@(Html.Kendo().Grid<Model>() 
      .Name("grid") 
      .Columns(columns => 
      { 

       columns.Bound(p => p.Name); 

      }) 

      .Events(ev => 
      { 
       ev.DataBound("initMenus"); 

      }) 

     ) 

我test.js

function initMenus(e) { 
     $(".templateCell").each(function() { 
      eval($(this).children("script").last().html()); 
     }); 
    } 

我肯定路径test.js是正确的。

这里是错误: enter image description here

回答

0

浏览器兑现

这是可能的浏览器兑付test.js文件,尝试加入一些版本控制的.js文件。

基本示例

<script src="~/js/test.js?v=1"></script> 

每次做出改变的js文件

按F5通常不会强制浏览器获取一个新的js文件

0
时间,然后增加此值

尝试移动下面的js,如下所示:

如果它在代码的这个顺序之前工作,您应该这样做,即使它在另一个js fi le

@(Html.Kendo().Grid<Model>() 
      .Name("grid") 
      .Columns(columns => 
      { 

       columns.Bound(p => p.Name); 

      }) 

      .Events(ev => 
      { 
       ev.DataBound("initMenus"); 

      }) 

     ) 


<script src="~/js/test.js"></script> 
+0

我照你说的去做了。仍然不起作用。我在asp.net核心mvc下使用它们 – AngularFan