【问题标题】:Ionic State.go is not workingIonic State.go 不工作
【发布时间】:2016-09-17 19:30:07
【问题描述】:

这是我的登录控制器

app.controller('lgctrl', function ($scope, $state) {
    $scope.open = function () {
        $state.go('home-menu');
    }
});

这是我的 App.js

 $stateProvider.state('login', {
     url: '/login',
     templateUrl: 'templates/login.html',
     controller: 'lgctrl'
 });
 $stateProvider.state('app', {
     url: '/app',
     abstract: true,
     templateUrl: 'templates/menu.html',
     controller: 'AppCtrl'
 });
 $stateProvider.state('app.home-menu', {
     url: '/home-menu',
     views: {
         'menuContent': {
             templateUrl: "templates/home-menu.html"
         }
     }
 });

$urlRouterProvider.otherwise('/login');

这是我的登录.html

<ion-view view-title="Login">
    <ion-content>
        <div class="list">
            <label class="item item-input item-floating-label">
                <span class="input-label">Email</span>
                <input type="text" placeholder="Email">
            </label>
            <label class="item item-input item-floating-label">
                <span class="input-label">Password</span>
                <input type="Password" placeholder="Password">
            </label>
        </div>
        <button   ng-click="open()" class="button button-block button-positive">
            Login
        </button >
        Don't have an Account? <a href = "#/signup">Sign-Up</a> | <a href="" >FAQ</a>
    </ion-content>
</ion-view>

当我点击登录按钮时出现此错误,我的 state.go 没有重定向到主菜单页面

Error: Could not resolve 'home-menu' from state 'login'
    at Object.transitionTo (ionic.bundle.js:52013)
    at Object.go (ionic.bundle.js:51946)
    at Scope.$scope.open (Controller.js:38)
    at fn (eval at compile (ionic.bundle.js:27638), <anonymous>:4:203)
    at ionic.bundle.js:65427
    at Scope.$eval (ionic.bundle.js:30395)
    at Scope.$apply (ionic.bundle.js:30495)
    at HTMLButtonElement.<anonymous> (ionic.bundle.js:65426)
    at defaultHandlerWrapper (ionic.bundle.js:16787)
    at HTMLButtonElement.eventHandler (ionic.bundle.js:16775)

【问题讨论】:

    标签: angularjs ionic-framework


    【解决方案1】:

    在您的路由配置中,您已将状态定义为“app.home-menu”,但请尝试在控制器中将其作为“home-menu”访问。因此,ui-router 找不到“home-menu”的匹配状态定义

    改用$state.go('app.home-menu');

    【讨论】:

    • 请编辑更多信息。不鼓励使用纯代码和“试试这个”的答案,因为它们不包含可搜索的内容,也没有解释为什么有人应该“试试这个”。我们在这里努力成为知识的资源。
    • 我想用这个侧边菜单添加标签?我该怎么办?
    • 你应该把它作为一个新问题发布
    【解决方案2】:

    尝试更新以下代码。

       $stateProvider
        .state('login', {
                    url: '/login',
                    templateUrl: 'templates/login.html',
                    controller : 'lgctrl'
                });
    
         .state('app', {
                url: '/app',
                abstract: true,
                templateUrl: 'templates/menu.html',
                controller: 'AppCtrl'
                  });
    
         .state('app.home-menu', {
                    url: '/home-menu',
                    views: {
                      'menuContent' :{
                        templateUrl: "templates/home-menu.html"
                      }
                    }
                  });
    $urlRouterProvider.otherwise('/login');
    

    【讨论】:

    • 听起来有什么不同吗?
    • 我已经多次放置 $stateProvider,试试这个,告诉我你得到了什么。如果没有,那么让我们考虑一下
    • 实际上,如果您尝试从每个状态中删除状态提供程序,您需要在每个状态后删除冒号...
    • 不,我还没有从每个州中删除,我在上面放置了一个引用其他州的州
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多