- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我是应用程序中 ionic 的新手,我想做的是根据用户所在的页面更改应用程序页面的标题。例如,如果用户在主页上,它应该在顶部显示 Home 如果他们在另一个页面上,它应该在顶部显示 Another。
每个页面都有自己的 Controller ,我为我的应用程序创建了一个名为 AppCtrl
的父 Controller ,并将其放在 Pane 中:
<ion-pane ng-controller="AppCtrl">
</ion-pane>
这是我的 AppCtrl:
// Root Controller
.controller("AppCtrl", function($rootScope, $scope) {
// Adding Sum Property To Array Prototype
Array.prototype.sum = function (prop) {
var total = 0
for (var i = 0, _len = this.length; i < _len; i++) {
total += this[i][prop]
}
return total
}
$scope.title = {
name: '',
icon: ''
};
// Function To Change Pane Title
$rootScope.changeTitle = function(name, icon) {
$rootScope.title = {
name: name,
icon: icon
};
$rootScope.$broadcast('TITLE_UPDATED', $rootScope.title);
}
$scope.$on('TITLE_UPDATED', function(event, title) {
$scope.title = {
name: title.name,
icon: title.icon
};
})
})
这是我的家庭 Controller :
// Home View Controller
.controller("HomeCtrl", function($scope, $rootScope) {
// Setting Title
$scope.changeTitle('Home', 'ion-home');
})
这是我的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<!-- compiled css output -->
<link href="css/ionic.app.css" rel="stylesheet">
<!-- custom css styles -->
<link href="css/style.css" rel="stylesheet">
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
<script src="js/app.ctrls.js"></script>
</head>
<body ng-app="mtgh">
<ion-pane ng-controller="AppCtrl">
<!-- </header + navbar> -->
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content>
<ion-nav-bar class="bar-stable bar-header-shadow has-header">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" menu-toggle="left">
</button>
<h1 class="title">
<i class="{{ title.icon }}"></i> {{ title.name }}
</h1>
</ion-nav-buttons>
</ion-nav-bar>
<ion-nav-view name="content">
</ion-nav-view>
</ion-side-menu-content>
<h1 class="title">
<img src="img/logo-94x35.png" alt="Starter" title="Starter">
</h1>
<ion-side-menu side="left">
<ion-header-bar class="bar-stable">
<h1 class="title">
<img src="img/logo-94x35.png" alt="Starter" title="Starter">
</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item menu-close="" ng-click="login()">
Login
</ion-item>
<ion-item menu-close="" href="#/app/search">
Search
</ion-item>
<ion-item menu-close="" href="#/app/browse">
Browse
</ion-item>
<ion-item menu-close="" href="#/app/playlists">
Playlists
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
<!-- </header> -->
<!-- <footer> -->
<ion-footer-bar class="bar-stable">
<h1 class="title">Starter</h1>
</ion-footer-bar>
<!-- </footer> -->
</ion-pane>
</body>
</html>
最佳答案
您可以将 changeTitle 函数设置为存在于您的运行方法中,以便全局设置。以下 plunker 仅使用 title.name 显示了这一点,您只需要替换主导航中的标题元素。
http://plnkr.co/edit/Nx9eLhYq62COLaFd21qT?p=preview
你也会注意到我去掉了 Controller 中的局部作用域标题引用,这是因为作用域在 AngularJS 中的分层方式,如果它在当前子作用域中找不到项目,它会查找上链,在本例中直接到 rootScope。
引用代码:
app.js:
var app = angular.module('plunker', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider.
when('/', {
controller: 'MainCtrl',
template: '<div><a href="#/home">Go Home</a></div>'
}).
when('/home', {
controller: 'HomeCtrl',
template: '<div>At Home <a href="#/">Go Back</a></div>'
})
}]);
app.run(['$rootScope',function($rootScope){
$rootScope.changeTitle = function(name, icon) {
$rootScope.title = {
name: name,
icon: icon
};
}
}]);
app.controller('MainCtrl', function($scope) {
$scope.changeTitle('Main', 'ion-settings');
});
app.controller('HomeCtrl', function($scope, $rootScope){
$scope.changeTitle('Home', 'ion-home');
})
index.html:
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>{{title.name}}</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js" data-semver="1.4.7"></script>
<script data-require="angular-route@1.4.6" data-semver="1.4.6" src="https://code.angularjs.org/1.4.6/angular-route.js"></script>
<script src="app.js"></script>
</head>
<body>
<h1>{{title.name}}</h1>
<div ng-view></div>
</body>
</html>
关于angularjs - 从 Ctrl 更改导航栏中的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698701/
ion-nav-view 嵌套有一个奇怪的问题。当我在浏览器中加载应用程序时,我可以看到 URL 正在更改为 /app/menu,但页面上没有出现 menu.html 中的内容。页面是空白的。 以下是
运行截图如下: 源码如下: CN_TEST1
我正在开发一个示例reactjs应用程序(在学习过程中)。我有一个页面,其中列出了用户列表和一个用于添加新用户的添加按钮。 当我单击添加按钮时,我应该导航到用户表单以创建新用户。 单击用户表单中的提交
我的导航栏中的导航链接有问题。首先,它没有在导航栏中间对齐,如下所示: 另一部分是,我正在使用填充来执行此操作,因此如果我放置除“测试”以外的任何内容或将其放在不同的情况下,等等。它会重复该框。代码预
基本上,我有一个网站,我正在尝试使用 ajax 导航构建它,以便它获取网页并将它们加载到同一页面中。问题是当我正常放入内容时它工作正常但是当我尝试将内容添加到外部文档并从导航中访问它时框拆分你可以在这
以下站点左侧菜单的导航使用 CSS 进行鼠标悬停链接。 PVH 当我获取导航代码并将其设为单独的页面时。然后鼠标悬停链接不起作用。可能是什么原因? Test 最佳答案 可能... 对此事有话要说
一 问题描述 标准的 Web 浏览器包含在最近访问过的页面中向后和向前移动的功能。实现这些特性的一种方法是使用双栈来跟踪前后移动可以到达的页面。 Web 导航支持下面的命令。 后退页面:将当前页面推到
我想有条件地导航到某个页面。如果某些条件为真,我想导航到其他页面,否则我想留在同一页面上。我有类似的东西:- 在 bean.navigate 我有类似的东西:- public String navi
问题:有没有办法让按钮在用户控件中表现得像超链接? 我已经搜索了几天,但没有找到解决此问题的人。如何使用按钮在 WPF 应用程序中导航?具体来说,如何使用户控件内的按钮在其主机框架中导航?请记住,用户
我尝试使用 Android Navigation 组件并遇到了回栈问题。 我有 fragment A,B。 我写的: Navigation.findNavController(view).naviga
我有一个父布局,并从该子站点派生而来。 父级布局具有一个导航,每个导航点代表一个子站点。 如何在父布局中突出显示当前查看的子站点? 如果看起来如何? 最佳答案 可能不是最好的选择,但这是基于路由名称的
我正在开发Blazor服务器端应用程序。熟悉Blazor的任何人都在左侧的NavBar中填充超链接,并以特殊的CSS类进行装饰。我的问题是,如果任何内容都已编辑,我将试图停止导航并在一个特定页面上显示
我是 flutter 的新手,我正在开发一个具有多个屏幕的应用程序。 我想知道如何阻止 flutter 创建同一路线的多个屏幕, 例如我有 第1页和 第2页 ,如果我单击按钮导航到第 2 页并再次单击
我们的设计师创建了一个类似于上面屏幕的布局。主要思想是创建一个只有一个屏幕的应用程序,当您点击一个按钮时,屏幕的红色部分会发生变化(即 2 个文本框而不是 1 个文本框)。这个应用程序将是一个多平台应
有人可以解释为什么从pageE返回时不打印efeioi吗? 页面A Navigator.pushNamed(context, PageB.ROUTE).then((onValue) {
我需要在 iOS 应用程序中创建一个导航,如下图所示。 它包含一个标签栏和一个侧边菜单。 问题是正确的导航菜单按钮,应该在所有选项卡中都可见。甚至每个选项卡的所有内部屏幕。 当用户从侧面菜单中选择一个
这个问题在这里已经有了答案: Vim: move around quickly inside of long line (8 个答案) 关闭 8 年前。 我正在用 vim 编辑一个文本文件,我已经使
我很困惑,如何执行操作来创建从用户位置到用户选择/点击图钉覆盖层的图钉覆盖层(谷歌位置)的路线/导航。这是我的 map Activity ,它将显示我的 map 。 public class Plac
我正在使用 jQuery 函数 .animate 来一一突出显示导航链接。他们在 ul 中。我可以让它工作,只是想知道是否有一种方法可以缩短我的代码,这样我就不必单独突出显示每个项目。提前致谢 $(d
我正在创建一个带有“ anchor 导航”的网站,就像 Facebook 和谷歌邮件一样。我已经让它工作了,但还不完全。当我加载带有 #contact 之类的页面时,除非我单击它的链接,否则它不会加载
我是一名优秀的程序员,十分优秀!