我有一个Angular应用程序依赖于使用一些模板网址 该应用程序在iframe中运行(请不要质疑为什么) 父页面上有一个javascript按钮,可以在每次点击时重新加载iframe和角度应用。
点击事件第一次发生时,事情很有效。应用程序已加载,同时向我的所有模板成功发送GET请求。
远程地址:127.0.0.1:80请求 网址:http://MyWebsite.com/_layouts/Project/MyAngularApp/angular-templates/term.html 请求方法:GET状态代码:200 OK请求Headersview源 接受:application / json,text / plain, / 接受编码:gzip,放气,SDCH Accept-Language:en-US,en; q = 0.8,sv; q = 0.6 Connection:keep-alive 饼干:打开=%23ICD -10- EN_0_class_0_0_1%2C%23ICD -10- EN_2_class_0_0_0%2C%23ICD -10- EN_2_class_12312_0_0%2C%23ICD -10- EN_2_class_12313_0_0%2C%23ICD -10- EN_2_class_12715_0_0; 装载=%23_0_class_0_0_0;选定=%23ICD -10- EN_2_class_12725_0_0; 主持人:klassifikationer 引用者:http://MyWebsite.com/_layouts/Project/MyAngularApp/angularApp.html
但是每当再次发生click事件时,模板URL的所有GET请求都会失败
请求 网址:http://MyWebsite.com/_layouts/Project/MyAngularApp/angular-templates/term.html 请求标题显示临时标题Accept:application / json, text / plain, / 引用者:http://MyWebsite.com/_layouts/Project/MyAngularAppr/angularApp.html
我收到此错误
"错误:$ compile:tpload错误加载模板" 。 https://docs.angularjs.org/error/ $编译/ tpload?P0 =角模板%2Fterm.html
" 无法加载模板:angular-templates / term.html 描述: 当$ compile尝试从某个URL获取模板时,会发生此错误,并且请求失败。 要解决此错误,请确保正确拼写模板的URL并解析为正确的绝对URL。 Chrome开发者工具也可能有助于确定请求失败的原因。 如果您使用$ templateCache预加载模板,请确保使用模板填充缓存。"
我已检查过Chrome调试器的“网络”标签,并确认失败和成功的GET请求似乎都相同。相同的请求URL,相同的引用页面,相同的接受参数。
问题可能与$ compile指令有关吗? 我正在使用" tree"我找到的指令库。它允许嵌套模板并使用compile指令来构建它们。这可能是问题吗?这是指令enter link description here
的演示 app.directive("tree", function (RecursionHelper) {
return {
restrict: "E",
scope: { family: '=' },
controller: 'MyController',
templateUrl: function(templateElement, templateAttrs) {
return templateAttrs.templateUrl;
},
replace: true,
restrict: 'E',
compile: function (element) {
// Use the compile function from the RecursionHelper,
// And return the linking function(s) which it returns
return RecursionHelper.compile(element);
}
};
});
以及使用template-url参数的HTML的一些示例
<div class="repeater" data-ng-repeat="item in content">
<tree family="item" template-url="angular-templates/term.html"></tree>
</div>
最后,我还要提到Angular应用程序在dotNET项目中运行。 (sharepoint更具体)但我不认为这应该是问题。