Невозможно заменить представление на <ion-nav-view>

0

Невозможно заменить вид в ионном. У меня есть меню в виде кнопок, когда я нажимаю на них, вид не получает замену. Ниже приведен код, который я пробовал

**index.html**
<div class="button-bar">
    <a class="button button-small button-stable button-outline" ui-sref="page1">Page1</a>
    <a class="button button-small button-stable button-outline" ui-sref="page2">Page2</a>
    <a class="button button-small button-stable button-outline" ui-sref="page3">Page3</a>
</div>
<ion-nav-view name="page1"></ion-nav-view>
<ion-nav-view name="page2"></ion-nav-view>
<ion-nav-view name="page3"></ion-nav-view>

Файлы js, используемые для замены представления. В page.controller.js ничего нет. Просто объявлено с помощью app.controller, и ничего не существует.

**pages.js**
app.config(function($stateProvider, $urlRouterProvider) {    
$stateProvider.state('page1', {
    cache: false,
   parent:'app',           
    views: {
        'page1': {
            templateUrl: 'templates/page1.html',
            controller: 'pages.controller'
        }
    }
}).state('page2', {
    cache: false,
   parent:'app',         
    views: {
        'page2': {
            templateUrl: 'templates/page2.html',
            controller: 'pages.controller'
        }
    }
}).state('page3', {
    cache: false,
   parent:'app',           
    views: {
        'page3': {
            templateUrl: 'templates/page1.html',
            controller: 'pages.controller'
        }
    }
})
});

Ниже приведены html-страницы для просмотров.

page1.html
<ion-view view-title="page1">
<ion-content> 
<div> <h2> Welcome to Page 1</h2> </div>
</ion-view>
</ion-content> 



page2.html
<ion-view view-title="page2">
<ion-content> 
<div> <h2> Welcome to Page 2</h2> </div>
</ion-view>
</ion-content> 



 page3.html 
<ion-view view-title="page3">
<ion-content> 
<div> <h2> Welcome to Page 3</h2> </div>
</ion-view>
</ion-content> 



app.js
var app = angular
    .module(
            'sampleapp',
            [ 'ionic' ]).config(
            function($stateProvider, $urlRouterProvider) {
                $stateProvider
                        .state('app', {
                            cache : false,
                            url : "/app",
                          abstract:true,
                            templateUrl : "templates/index.html",
                            controller : 'appcontroller'
                        })

Пожалуйста, помогите мне понять, почему вид не заменяется.

  • 0
    Почему вы добавляете именованное представление для каждого состояния страницы?
  • 0
    Когда я нажимаю определенную кнопку, и представление, связанное с этим состоянием, активируется. Таким образом, активированный вид заменяется.
Показать ещё 5 комментариев
Теги:
ionic-framework
ionic-view

1 ответ

0

это, вероятно, потому, что у вас есть 3 разных тега с ионами-nav-view, и каждый из них имеет отдельное имя, а каждое состояние заменяет только свое конкретное имя тега. Это означает, что даже если ваши взгляды будут введены, они будут перекрываться (и, вероятно, почему вы не видите, что ваши взгляды меняются, поскольку они перекрываются).

Вы должны изменить:

index.html

<div class="button-bar">
    <a class="button button-small button-stable button-outline" ui-sref="page1">Page1</a>
    <a class="button button-small button-stable button-outline" ui-sref="page2">Page2</a>
    <a class="button button-small button-stable button-outline" ui-sref="page3">Page3</a>
</div>
<ion-nav-view name="page-content"></ion-nav-view>

pages.js

app.config(function($stateProvider, $urlRouterProvider) {    
$stateProvider.state('page1', {
    cache: false,
   parent:'app',           
    views: {
        'page-content': {
            templateUrl: 'templates/page1.html',
            controller: 'pages.controller'
        }
    }
}).state('page2', {
    cache: false,
   parent:'app',         
    views: {
        'page-content': {
            templateUrl: 'templates/page2.html',
            controller: 'pages.controller'
        }
    }
}).state('page3', {
    cache: false,
   parent:'app',           
    views: {
        'page-content': {
            templateUrl: 'templates/page1.html',
            controller: 'pages.controller'
        }
    }
})
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню