我正在使用ng-route和ng-animate开发AngularJS SPA。我正在尝试使用ng-show在index.html#/
上显示Bootstrap Carousel。非常简单的任务。
我希望Carousel在索引页面上显示,但不在about页面或联系页面上显示。
我正试图在我的indexController
中执行逻辑:
if ($location.path() == "/") {
$scope.isIndexPage = true;
}
在我的HTML中:
<div id="myCarousel" class="carousel slide" data-ride="carousel" ng-show="isIndexPage">
但它没有按预期工作:Carousel不显示。移除ng-show
属性后,轮播将显示,但在所有页面上都会显示。
如何让Carousel仅在索引页面上显示?我尝试了ng-include
和ng-if
carousel.htm
等变体。诸如“AngularJS SPA和Bootstrap Carousel”之类的众多Google搜索都显示了无法回答的SO问题。
提前感谢任何输入。这是PLUNKER。
答案 0 :(得分:1)
将主页特有的内容放入主页模板有点奇怪,但无论如何...... 您的代码有两个主要问题:
解决方案:
请参阅http://plnkr.co/edit/8luxeIbyIPEKy0LkemM0?p=preview获取plunker的一个分支(附加的JS代码位于script.js的末尾):
appname.controller('MainCtrl', function($scope, $location) {
$scope.isIndexPage = function() {
return $location.path() === '/';
}
});
并在index.html文件中:
<body ng-controller="MainCtrl">
<div ng-show="isIndexPage()" ...>