Ionic $state.go ไม่ได้นำทางไปยังมุมมองใหม่

ฉันกำลังพยายามใช้ $state.go กับปุ่มเหตุการณ์ ng-click ไม่มีการนำทางเกิดขึ้น แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

Error: Could not resolve 'selectContacts' from state 'tab.settings' ฉันเคยใช้สิ่งนี้มาก่อนแต่ไม่ได้ใช้ในแอปแบบแท็บ นั่นเป็นปัญหาหรือไม่ ฉันรู้สึกว่านี่จะเป็นการแก้ไขที่ง่ายมาก แต่ฉันกำลังดิ้นรนที่จะปักหมุดมันโดยดูจากเอกสาร

จาก controllers.js

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

จาก 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'
             }
         }
     });

ปุ่ม:

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

person anthonyhumphreys    schedule 30.10.2015    source แหล่งที่มา
comment
พิมพ์ผิด.state(selectContacts' แก้ไขครับ   -  person michelem    schedule 30.10.2015
comment
ความคิดเห็นของ @ Michelem จะไม่ชัดเจนเมื่อคุณโหลด app.js หรือไม่ ดูคอนโซล.   -  person ergonaut    schedule 30.10.2015
comment
ขออภัย อาจมีการพิมพ์ผิดในคำถามของฉัน ไม่มีอยู่ในรหัสของฉัน....อ๊ะ!   -  person anthonyhumphreys    schedule 30.10.2015


คำตอบ (1)


เป็นเพราะคุณสมบัติ views ของคุณในการกำหนดค่าเส้นทาง

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

ฉันลบมันออกแล้วแทนที่ด้วยสิ่งนี้:

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

ตรวจสอบ Codepen นี้ http://codepen.io/nampdn/pen/BoVweN

person Nam Pham    schedule 30.10.2015
comment
ขอบคุณ! คุณช่วยชีวิตฉันไว้ :D - person anthonyhumphreys; 30.10.2015