Javascript 重新打开页面时角度脚本未运行

Javascript 重新打开页面时角度脚本未运行,javascript,jquery,html,css,angularjs,Javascript,Jquery,Html,Css,Angularjs,这是我创建的第一个网站: 我有一个我似乎无法解决的问题 如果您访问证书页面,您应该能够在证书上键入您的姓名。但是,如果单击其他选项卡,然后返回证书选项卡,则无法在证书上键入您的姓名。相反,您只看到中间的{{No}},它告诉我角脚本没有运行。 下面是我执行angular脚本的代码: 编辑: 通过将index.js文件更改为: $( function() { $('nav a').on('click', function(e) { // User clicks na

这是我创建的第一个网站:

我有一个我似乎无法解决的问题

如果您访问证书页面,您应该能够在证书上键入您的姓名。但是,如果单击其他选项卡,然后返回证书选项卡,则无法在证书上键入您的姓名。相反,您只看到中间的{{No}},它告诉我角脚本没有运行。 下面是我执行angular脚本的代码:

编辑: 通过将index.js文件更改为:

$( function() {

$('nav a').on('click', function(e) {                 // User clicks nav link
  e.preventDefault();                                // Stop loading new link
  var url = this.href;                               // Get value of href

  $('nav a.current').removeClass('current');         // Clear current indicator
  $(this).addClass('current');                       // New current indicator

  $('#content').remove(); 
  $('#container').load(url + " #content").hide().fadeIn('slow'); // Load content with AJAX



  if (url.slice(-13) == "practice.html") {
    $.getScript("js/practice.js");
    $.getScript("js/ui-spinner-behaviour.js");

  } else if (url.slice(-16) == "certificate.html") {
    $.getScript("js/certificate.js");
    $.getScript("js/ui-spinner-behaviour.js");
    $('#angular').remove(); //Remove any previous angular script tag
    $('<script id="angular" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>').insertAfter('section'); // Reload the script
  } else {
        $.getScript("js/repeatPictures.js");
  }
}); 
})
$(函数(){
$('nav a')。在('click')上,函数(e){//用户单击nav链接
e、 preventDefault();//停止加载新链接
var url=this.href;//获取href的值
$('nav a.current').removeClass('current');//清除当前指示器
$(this).addClass('current');//新的当前指示器
$(“#内容”).remove();
$(“#容器”).load(url+“#内容”).hide().fadeIn('slow');//使用AJAX加载内容
if(url.slice(-13)=“practice.html”){
$.getScript(“js/practice.js”);
$.getScript(“js/ui spinner behavior.js”);
}else if(url.slice(-16)=“certificate.html”){
$.getScript(“js/certificate.js”);
$.getScript(“js/ui spinner behavior.js”);
$('#angular').remove();//删除以前的任何angular脚本标记
$(“”).insertAfter('section');//重新加载脚本
}否则{
$.getScript(“js/repeatPictures.js”);
}
}); 
})
上面更新的.js文件修复了该网站。你可以看到新版本的网站没有问题,通过删除/旧的网站地址结尾(我不能发布超过2个链接)


但是,我不明白为什么这样可以解决问题

我没搞混,是你的代码。您在单击时加载angular,然后需要在第二次单击时检查是否加载angular,然后不要再加载它。如果您注意到,当您在证书选项卡上单击一次时,没有出现
***{{name}}**
,但下次再次单击该选项卡时,您会看到
***{{name}}}**

这不是因为您的代码混淆了。您在单击时加载angular,然后需要在第二次单击时检查是否加载angular,然后不要再加载它。如果您注意到,当您在“证书”选项卡上单击一次时,没有
***{{name}}**
,但下次再次单击该选项卡,然后单击angular细分,您会看到
***{name}}**

控制台显示您正在尝试多次加载angular。检查是否多次加载角度。否则,请向我们展示您加载angular库和依赖项注入部分的代码。我猜当第二次单击证书选项卡时,angular会感到困惑,因为它已经加载到页面上了。但是页面内容是通过AJAX更改的。Console显示您正在不止一次地尝试加载angular。检查是否多次加载角度。否则,请向我们展示您加载angular库和依赖项注入部分的代码。我猜当第二次单击证书选项卡时,angular会感到困惑,因为它已经加载到页面上了。但是页面内容是通过AJAX更改的,所以我现在只加载angular一次,没有给出错误。但是,{{name}}仍然显示在第二次访问证书选项卡上。你可以在网站上看到这种行为。我修复了上的问题,但我不确定为什么要去掉$.getScript标记来修复角度脚本。通过转到,您可以在两个版本的站点上看到注入angular的代码,因此我现在只加载angular一次,它不会给出错误。但是,{{name}}仍然显示在第二次访问证书选项卡上。你可以在网站上看到这种行为。我修复了上的问题,但我不确定为什么要去掉$.getScript标记来修复角度脚本。通过转到和,可以在两个版本的站点上看到注入angular的代码