Ionic $state.go tidak menavigasi ke tampilan baru

Saya mencoba menggunakan $state.go pada acara tombol ng-klik. Tidak ada navigasi yang terjadi tetapi saya mendapatkan kesalahan berikut:

Error: Could not resolve 'selectContacts' from state 'tab.settings' Saya pernah menggunakan ini sebelumnya tetapi tidak pada aplikasi tab, apakah itu masalahnya? Saya merasa ini akan menjadi perbaikan yang sangat sederhana tetapi saya kesulitan untuk menjelaskannya berdasarkan melihat dokumen.

Dari controllers.js

.controller('SettingsCtrl', function ($scope, $state, $stateParams) {
    $scope.goToContactsPage = function () {
        $state.go('selectContacts');
    }
})

Dari app.js

.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
    // setup an abstract state for the tabs directive
    .state('tab', {
        url: '/tab',
        abstract: true,
        templateUrl: 'templates/tabs.html'
    })

    .state('tab.settings', {
        url: '/settings',
            views: {
                'tab-settings': {
                    templateUrl: 'templates/tab-settings.html',
                    controller: 'SettingsCtrl'
            }
        }
    })
    .state('selectContacts', {
        url: '/selectContacts',
         views: {
             'selectContacts': {
                 templateUrl: 'templates/selectContacts.html',
                 controller: 'ContactsCtrl'
             }
         }
     });

Tombol:

<button class="button button-full button-positive" ng-click="goToContactsPage()">Select Contacts</button>

person anthonyhumphreys    schedule 30.10.2015    source sumber
comment
Ini salah ketik .state(selectContacts' perbaiki.   -  person michelem    schedule 30.10.2015
comment
apakah komentar @ Michelem tidak akan terlihat jelas saat Anda memuat app.js? Lihat konsolnya.   -  person ergonaut    schedule 30.10.2015
comment
Maaf, entah kenapa hanya salah ketik pada pertanyaan saya, ini tidak ada dalam kode saya....oops!   -  person anthonyhumphreys    schedule 30.10.2015


Jawaban (1)


Itu karena properti views Anda di konfigurasi rute.

views: {
   'selectContacts': {
      templateUrl: 'templates/selectContacts.html',
      controller: 'ContactsCtrl'
   }
}

Saya menghapusnya dan menggantinya dengan ini:

.state('selectContacts', {
      url: "/selectContacts",
      templateUrl: "templates/contact.html",
      controller: 'ContactsCtrl'
    });

Periksa Codepen ini http://codepen.io/nampdn/pen/BoVweN

person Nam Pham    schedule 30.10.2015
comment
Terima kasih! Anda menyelamatkan kewarasan saya :D - person anthonyhumphreys; 30.10.2015