Ios 使用$stateProvider和离子侧菜单进行导航在离子框架中不起作用
我使用ionic CLI创建了一个应用程序Ios 使用$stateProvider和离子侧菜单进行导航在离子框架中不起作用,ios,angularjs,ionic-framework,angular-ui-router,Ios,Angularjs,Ionic Framework,Angular Ui Router,我使用ionic CLI创建了一个应用程序 离子启动myApp侧菜单 离子平台添加ios 离子构建ios 离子模拟ios 然后我继续修改app.js,如下所示 angular.module('starter', ['ionic', 'starter.controllers']) .run(function ($ionicPlatform) { $ionicPlatform.ready(function () { if (window.cordova && wind
- 离子启动myApp侧菜单
- 离子平台添加ios
- 离子构建ios
- 离子模拟ios
angular.module('starter', ['ionic', 'starter.controllers'])
.run(function ($ionicPlatform) {
$ionicPlatform.ready(function () {
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.register', {
url: '/register',
views: {
'menuContent': {
templateUrl: 'templates/register.html',
controller: 'RegisterCtrl'
}
}
})
.state('app.snap', {
url: '/snap',
views: {
'menuContent': {
templateUrl: 'templates/snap.html',
controller: 'SnapCtrl'
}
}
})
.state('app.search', {
url: '/search',
views: {
'menuContent': {
templateUrl: 'templates/search.html',
controller: 'SearchCtrl'
}
}
})
.state('app.browse', {
url: '/browse',
views: {
'menuContent': {
templateUrl: 'templates/browse.html',
controller: 'BrowseCtrl'
}
}
});
$urlRouterProvider.otherwise('/app/snap');
});
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout) {
$scope.loginData = {};
$ionicModal
.fromTemplateUrl('templates/login.html', { scope: $scope })
.then(function(modal) { $scope.modal = modal; });
$scope.closeLogin = function() {
$scope.modal.hide();
};
$scope.login = function() {
$scope.modal.show();
};
$scope.doLogin = function() {
console.log('Doing login', $scope.loginData);
$timeout(function() {
$scope.closeLogin();
}, 1000);
};
})
.controller('RegisterCtrl', function($scope) {
//TODO
})
.controller('SnapCtrl', function($scope, Camera) {
//TODO
})
.controller('SearchCtrl', function($scope) {
//TODO
})
.controller('BrowseCtrl', function($scope) {
//TODO
});
我修改了controller.js,如下所示
angular.module('starter', ['ionic', 'starter.controllers'])
.run(function ($ionicPlatform) {
$ionicPlatform.ready(function () {
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.register', {
url: '/register',
views: {
'menuContent': {
templateUrl: 'templates/register.html',
controller: 'RegisterCtrl'
}
}
})
.state('app.snap', {
url: '/snap',
views: {
'menuContent': {
templateUrl: 'templates/snap.html',
controller: 'SnapCtrl'
}
}
})
.state('app.search', {
url: '/search',
views: {
'menuContent': {
templateUrl: 'templates/search.html',
controller: 'SearchCtrl'
}
}
})
.state('app.browse', {
url: '/browse',
views: {
'menuContent': {
templateUrl: 'templates/browse.html',
controller: 'BrowseCtrl'
}
}
});
$urlRouterProvider.otherwise('/app/snap');
});
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout) {
$scope.loginData = {};
$ionicModal
.fromTemplateUrl('templates/login.html', { scope: $scope })
.then(function(modal) { $scope.modal = modal; });
$scope.closeLogin = function() {
$scope.modal.hide();
};
$scope.login = function() {
$scope.modal.show();
};
$scope.doLogin = function() {
console.log('Doing login', $scope.loginData);
$timeout(function() {
$scope.closeLogin();
}, 1000);
};
})
.controller('RegisterCtrl', function($scope) {
//TODO
})
.controller('SnapCtrl', function($scope, Camera) {
//TODO
})
.controller('SearchCtrl', function($scope) {
//TODO
})
.controller('BrowseCtrl', function($scope) {
//TODO
});
services.js修改如下(大部分取自)
My menu.html修改如下
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content>
<ion-nav-bar class="bar-stable">
<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>
</ion-nav-buttons>
</ion-nav-bar>
<ion-nav-view name="menuContent"></ion-nav-view>
</ion-side-menu-content>
<ion-side-menu side="left">
<ion-header-bar class="bar-stable">
<h1 class="title">MyMenu</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item menu-close ng-click="login()">
<i class="icon ion-person"></i> Login
</ion-item>
<ion-item menu-close href="#/app/register">
<i class="icon ion-person-add"></i> Register
</ion-item>
<ion-item menu-close href="#/app/snap">
<i class="icon ion-camera"></i> Snap
</ion-item>
<ion-item menu-close href="#/app/search">
<i class="icon ion-search"></i> Search
</ion-item>
<ion-item menu-close href="#/app/browse">
<i class="icon ion-android-document"></i> Browse
</ion-item>
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
我的菜单
登录
登记
断裂
搜寻
浏览
当我在iOS模拟器中运行它时,总是单击登录链接菜单项work(一个模式显示)。但是,单击任何其他菜单项仅对单击的第一个菜单项有效。例如,如果单击“注册”,则会显示“注册”页面,但单击任何其他菜单项都不起作用(注册页面将继续显示)。这种行为也会出现在android emulator(ionic Simulate android
)和浏览器(ionic serve
)上
你知道我做错了什么吗 在
.controller('SnapCtrl',function($scope,Camera){…
,检查它是否定义了..?它是在services.js中定义的(刚刚发布)。@JaneWayne尝试创建一个Plunkr,以便我们很容易找到我忘记在我的服务中连接的问题。angular.module('starter',['ionic',starter.controllers'))
需要是angular.module('starter',['ionic','starter.controllers','starter.services'])
.Sorry.tryhref=“#/register”
在您的状态url中查找url:'/register',
在控制器('SnapCtrl',函数($scope,Camera)中的摄像头是什么{…
,检查它是否定义了…?它是在services.js(刚刚发布)中定义的。@JaneWayne尝试创建一个Plunkr,以便我们容易找到我忘记在我的服务中连接的问题。angular.module('starter',['ionic','starter.controllers'))
需要是angular.module('starter',['IONAL'、'starter.controllers'、'starter.services'])
.Sorry.tryhref=“#/register”
在您的州url中查找url:'/register',