ng-routed AngularJS SPA ng-show a Bootstrap 传送带不工作
ng-routed AngularJS SPA ng-show a Bootstrap Carousel not working
我正在开发一个 AngularJS SPA,使用 ng-route 和 ng-animate。我正在尝试使用 ng-show 在 index.html#/
上显示 Bootstrap 轮播。非常简单的任务。
我希望轮播显示在索引页上,而不是在关于页或联系页上。
我正在尝试在我的 indexController
中执行逻辑,如下所示:
if ($location.path() == "/") {
$scope.isIndexPage = true;
}
在我的 HTML 中:
<div id="myCarousel" class="carousel slide" data-ride="carousel" ng-show="isIndexPage">
但它没有按预期工作:轮播不显示。删除 ng-show
属性后,将显示轮播,但会显示在所有页面上。
如何让轮播只显示在首页?我试过 ng-include
-ing 和 ng-if
ing carousel.htm
等变体。许多 Google 搜索(例如 "AngularJS SPA and Bootstrap Carousel" 显示未回答的 SO 问题。
提前感谢您的任何意见。这是 PLUNKER.
首页特有的东西不放到首页的模板里有点奇怪,但不管怎么说...
您的代码有 2 个主要问题:
- 您正试图从不受此控制器控制的页面的一部分访问 indexController 范围内的变量。控制器只控制它的视图。控制器的 $scope 仅限于它的视图。
- 您只初始化了一次 isIndexPage 变量。之后就再也没有变过。
解决方案:
- 为整个页面主体创建一个控制器,并将用于控制轮播可见性的逻辑放在该控制器中
- 使用根据当前位置 return 真或假的函数
查看 http://plnkr.co/edit/8luxeIbyIPEKy0LkemM0?p=preview for fork for your 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()" ...>
我正在开发一个 AngularJS SPA,使用 ng-route 和 ng-animate。我正在尝试使用 ng-show 在 index.html#/
上显示 Bootstrap 轮播。非常简单的任务。
我希望轮播显示在索引页上,而不是在关于页或联系页上。
我正在尝试在我的 indexController
中执行逻辑,如下所示:
if ($location.path() == "/") {
$scope.isIndexPage = true;
}
在我的 HTML 中:
<div id="myCarousel" class="carousel slide" data-ride="carousel" ng-show="isIndexPage">
但它没有按预期工作:轮播不显示。删除 ng-show
属性后,将显示轮播,但会显示在所有页面上。
如何让轮播只显示在首页?我试过 ng-include
-ing 和 ng-if
ing carousel.htm
等变体。许多 Google 搜索(例如 "AngularJS SPA and Bootstrap Carousel" 显示未回答的 SO 问题。
提前感谢您的任何意见。这是 PLUNKER.
首页特有的东西不放到首页的模板里有点奇怪,但不管怎么说... 您的代码有 2 个主要问题:
- 您正试图从不受此控制器控制的页面的一部分访问 indexController 范围内的变量。控制器只控制它的视图。控制器的 $scope 仅限于它的视图。
- 您只初始化了一次 isIndexPage 变量。之后就再也没有变过。
解决方案:
- 为整个页面主体创建一个控制器,并将用于控制轮播可见性的逻辑放在该控制器中
- 使用根据当前位置 return 真或假的函数
查看 http://plnkr.co/edit/8luxeIbyIPEKy0LkemM0?p=preview for fork for your 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()" ...>