gpt4 book ai didi

javascript - ionic 模板内容未显示

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:53 25 4
gpt4 key购买 nike

我已经使用 ion-side-menus 和 Angular 状态机制通过 Ionic 进行了基本的菜单导航,如 http://joelhooks.com/blog/2013/07/22/the-basics-of-using-ui-router-with-angularjs/ 中所述。但是当加载主页或单击任何菜单项时,页面的中心部分没有显示任何内容。这是简化的 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>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
</head>
<body ng-app="testapp" ng-controller="MainCtrl">
<ion-side-menus>

<!-- Center content -->
<ion-side-menu-content>
<ion-header-bar class="bar-header">
<button class="button button-icon" ng-click="toggleSideMenu()">
<i class="icon ion-navicon"></i>
</button>
<h1 class="title">Home</h1>
<button class="button button-icon">
<i class="icon ion-star"></i>
</button>
</ion-header-bar>
</ion-side-menu-content>

<!-- Left menu -->
<ion-side-menu side="left">
<ion-list>
<ion-item class="item item-icon-left" ng-repeat="item in menuItems" item="item" ng-click="enterState(item.id)">
<i class="{{item.icon}}"></i> {{item.name}}
</ion-item>
</ion-list>
</ion-side-menu>
</ion-side-menus>

<script id="home.html" type="text/ng-template">
<ion-view title="Home">
<ion-content padding="true">
<p>HOME</p>
</ion-content>
</ion-view>
</script>

<script id="page2.html" type="text/ng-template">
<ion-view title="Page 2">
<ion-content padding="true">
<p>PAGE 2</p>
</ion-content>
</ion-view>
</script>

<script id="page3.html" type="text/ng-template">
<ion-view title="Page 3">
<ion-content padding="true">
<p>PAGE 3</p>
</ion-content>
</ion-view>
</script>

</body>
</html>

这是 Controller JS ...

angular.module('testapp', ['ionic'])
.config(function($urlRouterProvider, $stateProvider) {
"use strict";

/* Set up the states for the application's different sections. */
$stateProvider
.state('home', {name: 'home', url: '/home', templateUrl: 'home.html', controller: 'MainCtrl'})
.state('page2', {name: 'page2', url: '/page2', templateUrl: 'page2.html', controller: 'MainCtrl'})
.state('page3', {name: 'page3', url: '/page3', templateUrl: 'page3.html', controller: 'MainCtrl'})
;
})

.controller('MainCtrl', function($scope, $state, $ionicSideMenuDelegate) {
"use strict";

/* Items for left side menu. */
$scope.menuItems = [
{id: 'page2', name: 'Page 2', icon: 'icon ion-person-stalker'},
{id: 'page3', name: 'Page 3', icon: 'icon ion-person-stalker'}
];

$scope.toggleSideMenu = function() {
$ionicSideMenuDelegate.toggleLeft();
};

$scope.enterState = function(stateID) {
$state.transitionTo(stateID);
};

$scope.enterState('home');
$scope.$state = $state;
})

出现了正确的 URL,所以我认为状态机制工作正常,但 Angular 模板中的 Ionic 内容没有出现。任何对 Ionic 更有经验的人都可以提示我这里出了什么问题吗?

最佳答案

简短回答

您至少有两个问题:

  • 在 Controller 中调用 $scope.enterState('home'); .另一方面,每个状态调用相同的 Controller 。因此你进入相同的状态 home .

    删除此行并添加 config : $urlRouterProvider.otherwise('/home');

  • 在 HTML 中添加 <ion-nav-view class="slide-left-right"></ion-nav-view>

就这些。

这里正在工作 Demo

工作代码


HTML

<html ng-app="testapp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">

<title>Login</title>

<link href="http://code.ionicframework.com/1.0.0-beta.1/css/ionic.min.css" rel="stylesheet">
<script src="http://code.ionicframework.com/1.0.0-beta.1/js/ionic.bundle.min.js"></script>
</head>

<body ng-controller="MainCtrl">
<ion-side-menus>

<!-- Center content -->
<ion-side-menu-content>
<ion-header-bar class="bar-header">
<button class="button button-icon" ng-click="toggleSideMenu()">
<i class="icon ion-navicon"></i>
</button>
<h1 class="title">Home1</h1>
<button class="button button-icon">
<i class="icon ion-star"></i>
</button>
</ion-header-bar>


<ion-nav-view class="slide-left-right"></ion-nav-view>

</ion-side-menu-content>



<!-- Left menu -->
<ion-side-menu side="left">
<ion-list>
<ion-item class="item item-icon-left" ng-repeat="item in menuItems" item="item" ng-click="enterState(item.id)">
<i class="{{item.icon}}"></i> {{item.name}}
</ion-item>
</ion-list>
</ion-side-menu>
</ion-side-menus>

<script id="home.html" type="text/ng-template">
<ion-view title="Home">
<ion-content padding="true">
<p>HOME</p>
</ion-content>
</ion-view>
</script>

<script id="page2.html" type="text/ng-template">
<ion-view title="Page 2">
<ion-content padding="true">
<p>PAGE 2</p>
</ion-content>
</ion-view>
</script>

<script id="page3.html" type="text/ng-template">
<ion-view title="Page 3">
<ion-content padding="true">
<p>PAGE 3</p>
</ion-content>
</ion-view>
</script>

</body>
</html>

JS

angular.module('testapp', ['ionic'])
.config(function($stateProvider, $urlRouterProvider) {
"use strict";

/* Set up the states for the application's different sections. */
$stateProvider
.state('home', {name: 'home', url: '/home', templateUrl: 'home.html', controller: 'MainCtrl'})
.state('page2', {name: 'page2', url: '/page2', templateUrl: 'page2.html', controller: 'MainCtrl'})
.state('page3', {name: 'page3', url: '/page3', templateUrl: 'page3.html', controller: 'MainCtrl'})
;
$urlRouterProvider.otherwise('/home');

})

.controller('MainCtrl', function($scope, $state, $ionicSideMenuDelegate) {
"use strict";


/* Items for left side menu. */
$scope.menuItems = [
{id: 'page2', name: 'Page 2', icon: 'icon ion-person-stalker'},
{id: 'page3', name: 'Page 3', icon: 'icon ion-person-stalker'}
];

$scope.toggleSideMenu = function() {

$ionicSideMenuDelegate.toggleLeft();
};

$scope.enterState = function(stateID) {
console.log(stateID);
$state.transitionTo(stateID);
};

//$scope.enterState('home');

$scope.$state = $state;
})

关于javascript - ionic 模板内容未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23242075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com