如果文件不存在,则ngInclude使用默认路径

时间:2016-03-04 15:45:13

标签: javascript html angularjs angularjs-directive

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

我有一段代码正在运行,但我认为我可以做得更好......我想使用指令,我认为它要好得多。

HTML:

<div class="include-container" ng-include="{{ mainViewUrl }}"></div>

控制器:

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

感谢您的帮助,希望这不是一个重复的问题......

修改

我找到了解决方案的这一部分:AngularJS ng-include failover 这里是Plunker

我想,在失败时,加载我的默认网址。有什么想法吗?

EDIT2:

我想做那样的事情:

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

1 个答案:

答案 0 :(得分:0)

将回复放入$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'";
});