javascript - 如何使它在AngularJs中的单个标头上工作
问题描述
我正在使用 AngularJs,我想在我的所有页面上使用一个标题。对于页面,我使用的是 ng-route。现在,我想对注销按钮(位于标题中)进行测试,但无法正常工作。这是我的索引
<!DOCTYPE html>
<html ng-app="adminApp">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Admin Test</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link type="text/css" href="app/css/admin.css" rel="stylesheet" />
<link type="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker3.standalone.min.css" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css?family=Quicksand&display=swap" rel="stylesheet">
<head>
<base href="/">
</head>
<body>
<div ng-include="'app/components/include/header.html'"></div>
<ng-view></ng-view>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-resource.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.min.js"></script>
<script src="app/app.js"></script>
<script src="app/components/login/admin-login.js"></script>
<script src="app/components/home/admin-home.js"></script>
<script src="app/routes/admin-route.js"></script>
</body>
</html>
这是我的标题的 html
<section class="admin-header">
<div class="row">
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
<a id="admin-logo"><img src="myimagesource" /></a>
</div>
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3" id="login" align="center">
<button type="button" class="btn btn-user" ng-click="logout()">
<span class="glyphicon glyphicon-menu-hamburger" aria-hidden="true"></span>
</button>
</div>
</div>
</section>
我的标题代码:
(function(){
var head = {
templateUrl: '/app/components/include/header.html',
controller: headCtrl
};
angular
.module('adminApp')
.component('adminHead', head);
headCtrl.$inject = ["$scope"];
function headCtrl($scope){
$scope.logout = function(){
console.log('Success');
}
}
})();
组件上的adminHead
来自我的路由文件:
(function(){
'use strict';
angular
.module('adminApp')
.config(config);
config.$inject = ["$routeProvider", "$locationProvider"];
function config($routeProvider, $locationProvider){
$locationProvider.hashPrefix('');
$routeProvider
.when('/', {
template: '<admin-login></admin-login>'
})
.when('/head', {
template: '<admin-head></admin-head>'
})
.when('/home', {
template: '<admin-home></admin-home>'
})
.otherwise({
redirectTo: '/'
});
}
})();
当我单击注销按钮时,没有任何反应。有人可以指导我吗?无论我在哪个页面(登录或主页),我该怎么做才能使功能正常工作?有什么东西不见了?
我正在使用 AngularJs 和 Javascript,以及用于 HTML 的 Bootstrap。
提前谢谢。
解决方案
在上面的示例中,您必须使用 ng-include 或 component 来实现可重用性。所以删除元素
"<div ng-include="'app/components/include/header.html'"></div>"
并添加<admin-head></admin-head>
再试一次。这里可以单独使用元素来调用组件。
如果您想同时使用两者,请尝试将组件包含**"<admin-head></admin-head>"**
在 header.html 中,并将组件作为单独的 html..
推荐阅读
- unreal-engine4 - 错误:无法加载游戏模块
- mysql - 如何将 MySQL MEMORY 存储引擎与 Knex 一起使用?
- javascript - 如何定义从 json 到 js 的 var?
- r - 使用 R 在组中创建具有条件的新数据框
- c# - Css 类不适用于中继器中的最后一个元素
- python - 您可以将 sha256 两次应用于单个字符串吗?
- laravel - Laravel Nova - 前端的输出形式?
- hadoop - 哪个版本的sqoop兼容hadoop 3.0
- react-native - 反应原生参考子失败
- java - 如何修复连接到 sql server 2012 错误?