Javascript 角度:$HTTP404错误处理
我有一个包含2 ng的HTML。考虑在服务器中是否存在一个NG包括SRC。到目前为止,它只会加载空白html,在浏览器控制台中会显示http-404文件未找到 所以在本例中,我只想将默认错误页(存在于服务器中)加载到特定的div中,即一半显示默认错误页,另一半显示通过nginclude加载的正确div 我的逻辑是,我使用一个http拦截器,在这里我截获所有http调用。每当发生404时,我想返回默认的错误页面,该页面必须只加载到div中。因此,这就像模拟一个正确的http调用,但发送一个错误页面,我认为必须将其加载到正确的div 但事实并非如此:)。我尝试使用默认窗口。加载(“”)。但它会加载到页面顶部,并跨页面显示 或者我应该捕获div id(如果是,如何捕获?),然后tat id加载默认错误HTML吗Javascript 角度:$HTTP404错误处理,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我有一个包含2 ng的HTML。考虑在服务器中是否存在一个NG包括SRC。到目前为止,它只会加载空白html,在浏览器控制台中会显示http-404文件未找到 所以在本例中,我只想将默认错误页(存在于服务器中)加载到特定的div中,即一半显示默认错误页,另一半显示通过nginclude加载的正确div 我的逻辑是,我使用一个http拦截器,在这里我截获所有http调用。每当发生404时,我想返回默认的错误页面,该页面必须只加载到div中。因此,这就像模拟一个正确的http调用,但发送一个错误页面
需要您的思考。要处理这种情况,您可以使用http拦截器(在此处找到文档:) 拦截器必须捕获404响应,从服务器加载404.html页面,然后 将其与状态代码200一起设置为初始响应的数据 我创建了一个项目,展示了如何解决这个问题 存储库:
仔细看看这个文件。我做了类似的事情,在填充ng include值之前,通过$http直接传递所需的ng include url
$http({ url: url, method: "GET", cache: $templateCache}).success(function(data) {
/* there was a template for this url - set the $scope property that
* the ng-include is using
*/
$scope.templateUrl = url;
}).error(function () {
// there was not a template for this url - set the default one
$scope.templateUrl = defaultUrl;
});
这里的诀窍是将$templateCache作为cache参数传递给$http-这意味着获取的url存储在ng include使用的同一个缓存中,因此当您找到一个有效的模板并在templateUrl属性中进行设置时,ng include不需要再次获取模板。您是否有一个示例来说明您正在尝试执行的操作?也许是小提琴吧