当我单击按钮时,我在尝试执行 ng-include 时遇到问题。这是我的代码:
Main.html:
<div class="main">
<div ng-include="(manage.show && 'dsManage.html') || dsSelect.html"></div>
<h1>Data Sources</h1>
<div ng-controller="MainCtrl" >
<div ng-show="reportManage && (reportManage.canManage || reportManage.canManageAll)">
<div class="row searchRow">
<span class="col-sm-6" style="padding-left: 0px;">
<span class="input-group">
<input type="text" class="form-control searchInput" placeholder="Search" ng-model="search">
<span class="input-group-addon"><img ng-if="search" src="../images/Search_clear.png" ng-click="clearSearch()"/></span>
</span>
</span>
<div class="col-sm-2 col-sm-offset-4 text-right">
<a ng-show="tileLayout" class="btn-list-view" ng-click="tileLayout=false">List View</a>
<a ng-show="!tileLayout" class="btn-tile-view" ng-click="tileLayout=true">Tile View</a>
</div>
</div>
<div class="text-left">
<button ng-click="showDatasources()">All/Default</button>
<button ng-click="showManagePage()">Manage</button>
<!--<a href="{{dsSelectAllDefault}}" id="btn-default-all"></a>-->
</div>
</div>
</div>
</div>
Main.js:
$scope.showManagePage = function() {
console.log("True");
$scope.manage.show = true;
}
基本上我想要的是,当我单击Manage
按钮时,showManagePage()
将触发并导致ng-include
在代码最顶部触发并显示dsManage.html
。这将用 dsManage.html
替换现有 View dsSelect.html
。然而,每当我按下这个按钮时,什么也没有发生。问题是这些页面位于我的根目录中,当我将 ./
前缀添加到我的文件中时,我的页面似乎崩溃了。谁能帮我吗?谢谢!
编辑:更新了 Main.html 文件:
<div class="main">
<div ng-controller="MainCtrl" >
<div ng-show="manage.show" ng-include="'dsManage.html'"></div>
<div ng-show="!manage.show">
<h1>Data Sources</h1>
<div ng-show="reportManage && (reportManage.canManage || reportManage.canManageAll)">
<div class="row searchRow">
<span class="col-sm-6" style="padding-left: 0px;">
<span class="input-group">
<input type="text" class="form-control searchInput" placeholder="Search" ng-model="search">
<span class="input-group-addon"><img ng-if="search" src="../images/Search_clear.png" ng-click="clearSearch()"/></span>
</span>
</span>
<div class="col-sm-2 col-sm-offset-4 text-right">
<a ng-show="tileLayout" class="btn-list-view" ng-click="tileLayout=false">List View</a>
<a ng-show="!tileLayout" class="btn-tile-view" ng-click="tileLayout=true">Tile View</a>
</div>
</div>
<div class="text-left">
<button ng-click="showDatasources()">All/Default</button>
<button ng-click="showManagePage()">Manage</button>
<!--<a href="{{dsSelectAllDefault}}" id="btn-default-all"></a>-->
</div>
</div>
</div>
</div>
</div>
</div>
我现在遇到一个问题,提示警告:尝试多次加载 Angular 。
并且我注意到只有在执行ng-include
时才会出现此错误。关于如何解决这个问题有什么想法吗?
最佳答案
我相信您的manage.show超出了 Controller MainCtrl的范围。 尝试在 Controller DIV 内使用 ng-include 移动 DIV。或者将 Controller 声明移动到类 main 的 div 中。
关于javascript - 如何使用按钮执行 ng-include ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637602/