Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 ngInclude如果文件不';不存在_Javascript_Html_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript ngInclude如果文件不';不存在

Javascript ngInclude如果文件不';不存在,javascript,html,angularjs,angularjs-directive,Javascript,Html,Angularjs,Angularjs Directive,我需要使用ngInclude包含一个文件。 我的问题是,我想加载一个自定义视图。如果这个customView不存在,我想使用默认的 我有一段代码在工作,但我认为我可以做得更好。。。我想使用一个指令,我认为它更好 HTML: <div class="include-container" ng-include="{{ mainViewUrl }}"></div> 谢谢你的帮助,希望这不是一个重复的问题 编辑: <div class="include-container

我需要使用ngInclude包含一个文件。 我的问题是,我想加载一个自定义视图。如果这个customView不存在,我想使用默认的

我有一段代码在工作,但我认为我可以做得更好。。。我想使用一个指令,我认为它更好

HTML:

<div class="include-container" ng-include="{{ mainViewUrl }}"></div>
谢谢你的帮助,希望这不是一个重复的问题

编辑:

<div class="include-container" ng-include="{{ mainViewUrl }}"></div>
我找到了这部分解决方案: 这是

如果失败,我想加载我的默认url。有什么想法吗

EDIT2:

<div class="include-container" ng-include="{{ mainViewUrl }}"></div>
我想这样做:

<div class="include-container" ng-include="customView.html || defaultView.html"></div>

将响应放入
$templateCache
中,这样视图就不会再次请求获取相同的文件

$http.get('customView.html').then(function success(response) {
      $templateCache.put('customView.html', response.data);
      $scope.mainView = "'customView.html'";
}, function error(response) {
     $scope.mainView = "'defaultView.html'";
});

看起来会加载两次。您可以插入字符串而不是文件吗?在
get
部分中,您已经将文件内容作为字符串,如果不需要(在显示的代码中不需要),那么它应该是一个HEAD请求,而不是一个GETI,将通过将调用放入工厂开始。响应包含哪些数据。我是说,你不用它。为什么不呢?您不应该对http调用使用指令。指令应该是应用程序中的哑组件。如果可能的话,我宁愿使用其他东西而不是http调用:)这是我目前为止找到的唯一方法。。。我将更新我的问题,以显示我使用的指令,但对我来说做得不够好。。。但我不知道它什么时候可以做两次请求?还有什么使用指令可以做的吗?会做两次请求,因为
$http
发出一个请求…那么
ng include