所以我正在尝试使用ionic来构建一个简单的移动应用程序。我已经看过离子教程和Google搜索了很多但我还没得到它。我创建了一个导航栏,通过将此代码添加到index.html页面显示在每个页面上:
<body ng-app="starter">
<ion-nav-bar class="bar-stable nav-title-slide-ios7">
<ion-nav-back-button class="button-icon icon ion-ios7-arrow-back">
</ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view>
</ion-nav-view>
</body>
我使用以下代码在我的一个页面的导航栏右侧添加了一个导航图标:
<ion-view title="Hanzi Options">
<ion-nav-buttons side="right">
<button menu-toggle="right" class="button button-icon icon ion-navicon" >
</button>
</ion-nav-buttons>
<ion-content>...etc
我希望能够点击导航图标并查看包含名为sidemenu.html的基本html页面的侧边菜单,该页面位于模板文件夹中。这是该文件中代码的开头:
<ion-side-menus>
<ion-pane ion-side-menu-content>
<ion-nav-bar class="bar-stable nav-title-slide-ios7">
<ion-nav-back-button class="button-clear"><i class="icon ion-ios7-arrow-back"></i> Back</ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view name="menuContent" animation="slide-left-right"></ion-nav-view>
</ion-pane>
<ion-side-menu side="left">
<header class="bar bar-header bar-stable">
<h1 class="title">Navigate</h1>
</header>
<ion-content class="has-header">
<ion-list>
<ion-item nav-clear menu-close href="#/friends">
Friends
</ion-item>...etc
我将此代码添加到.config部分中的app.js文件中:
.state('app.sidemenu', {
url: "/sidemenu",
abstract: true,
templateUrl: "templates/sidemenu.html",
controller: 'NavCtrl'
})
和一个空的NavCtrl到我的controllers.js文件:
.controller('NavCtrl', function($scope) {
});
我怀疑也许我的.state代码不太正确但不确定。另外,我是否需要向NavCtrl控制器添加一些内容以打开/关闭侧边菜单?非常感谢提前!
答案 0 :(得分:5)
首先,我创建了一个工厂来提供侧边菜单的列表项目:
.factory('MenuService', function() {
var menuItems = [{text: 'Friends'}, {text: 'Enemies'}, {text: 'Losers'}];
return {
all: function() {
return menuItems;
}
}
})
然后,我创建了一个菜单控制器:
.controller('MenuController', function ($scope, $location, MenuService) {
// "MenuService" is a service returning mock data (services.js)
$scope.list = MenuService.all();
});
我用index:
替换了index.html页面正文中的代码 <div ng-controller="MenuController">
<ion-side-menus>
<!-- Center content -->
<ion-pane ion-side-menu-content>
<ion-nav-bar type="bar-assertive" back-button-type="button-icon" back-button-icon="ion-arrow-left-c"></ion-nav-bar>
<ion-nav-view>
</ion-nav-view>
</ion-pane>
<!-- Left Side Menu -->
<ion-side-menu side="right">
<ion-header-bar class="bar bar-header bar-assertive">
<h1 class="title">Menu</h1>
</ion-header-bar>
<ion-content has-header="true">
<ion-list>
<ion-item ng-click="goTo(item.link)" class="item item-icon-left" ng-repeat="item in list" menu-close>
<!-- <i ng-class="item.iconClass"></i> -->
{{item.text}}
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
</div>
工厂取代了我在模板目录中的sidemenus.html。此外,&#34; .state&#34;根本不需要东西。
答案 1 :(得分:0)
Ionic的初学者应用程序是带侧边菜单的应用程序的一个小例子
ionic start myApp sidemenu
以下是您可以查看的实时预览
http://plnkr.co/edit/0RXSDB?p=preview
我认为您的路线定义存在问题
改变这个:
.state('app.sidemenu', { ...
进入这个:
.state('sidemenu', { ...
进入菜单不同部分的所有其他路线应如下所示:
.state('sidemenu.home', { ...
.state('sidemenu.dashboard', { ...