我有一个带有多个视图和控制器的angularjs web应用程序。我有一个名为topnav.html的html文件,它包含在除3之外的所有视图中。而不是将其包含在所有视图中,我想将其包含在中index.html。如果我这样做,我会在所有观点中得到它。我必须从3个特定视图中排除它。我该怎么做?
synchronized
我在除了3之外的所有视图中都包含了topnav.html。相反,我只想在index.html中包含它。但问题是我在所有视图中都获得了topnav.html,包括3个视图但是,我不希望topnav.html包含在我的3个观点中。 我知道我必须使用ng-if,但我不知道该放什么。
答案 0 :(得分:0)
您可以使用ng-if完成在特定页面上排除该引用。您需要提供一个更好的例子来说明您要做的事情。
创建一个在所有页面中保留的变量,如下所示:
//Make this a universal variable
$scope.includeJS = true;
//Put this either in the js of the page you want to not have the reference or put it in a universal js and put a $watch on it.
if($location.path() == "/ExcludePath")
{
//if it is in a universal js
$scope.includeJS = false;
// if it is in a js file outside a universal js
$scope.$parent.universalCtrl.includeJS = false;
}
答案 1 :(得分:0)
您可以创建一个处理高级决策的AppController。在那里,你把你需要的逻辑展示给你的顶级导航。
您的索引页面如下所示:
<body ng-controller="AppController">
<div ng-if="showTopNav()" ng-include="'views/topnav.html'"></div>
<div ng-view></div>
</body>
并在AppController中:
$scope.showTopNav = function () {
var result;
//logic to show top nav...
return result;
}