我想在应用视图的标题中找到返回目标网页的链接,但显然不在目标网页上。我如何在Angular.js中以最佳方式实现它?
我应该使用$ location.url()来确定视图,还是应该使用bind-html或其他东西?
感谢您提供一些提示和帮助!
修改
我当前的代码,我想我已经让它变得更容易了,因为每个视图都有自己的控制器,但是链接始终显示:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<style>
</style>
</head>
<body ng-app="myApp">
<div data-role="page" id="pageone">
<div data-role="header">
<h1>WELCOME!</h1>
<a href="home" ng-show="!isLandingPage">BACK TO HOME</a>
</div>
<div ng-view></div>
<div data-role="footer">
<h1>footer</h1>
</div>
</div>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js"></script>
<script>
'use strict';
var app = angular.module('myApp', ['ngRoute']);
app.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
$routeProvider
.when('/', {
templateUrl : 'views/home.html',
controller : 'HomeController'
})
.when('/other', {
templateUrl : 'views/other.html',
controller : 'OtherController'
});
});
app.controller('HomeController', function($scope, $http, $location, $route) {
$scope.isLandingPage = true;
});
app.controller('OtherController', function($scope, $route) {
$scope.info = 'Other';
});
</script>
</body>
</html>
答案 0 :(得分:1)
始终显示链接,因为您的div所在的div没有连接任何控制器。
你可以这样做:
app.controller('landingPageCtrl', ['$scope', '$location', function($scope, $location){
$scope.isLandingPage = function(){
return ($location.url() == '/home') ? true : false;
}
}]);
然后使用 ng-show 隐藏或显示链接,具体取决于位置
<div ng-controller="landingPageCtrl" data-role="header">
<h1>WELCOME!</h1>
<a href="home" ng-show="!isLandingPage()">BACK TO HOME</a>
</div>
答案 1 :(得分:0)
我喜欢检查我的路线(或ui.router中的状态)。
$scope.isLandingPage = $state.current.name === 'home';
并使用<a ng-show="!isLandingPage">Link</a>