ionic $ state.go没有加载页面或显示错误

时间:2017-11-03 13:18:19

标签: angularjs ionic-framework angular-ui-router state.go

我在我的应用程序中使用$ state.go()其他地方,但它不能在一个简单的功能中工作,我无法解决原因。它没有显示错误或显示在$ state.go()中调用的正确状态。

我用$ stateChangeStart,$ stateChangeError,$ viewContentLoading& $ stateChangeSuccess。它到达所有正确的阶段:$ stateChangeStart,$ viewContentLoading然后$ stateChangeSuccess,但每个都有正确的内容,但不加载页面。

我最初尝试使用ui-sref而且没有用,所以我用$ state.go()尝试了,现在这样做不行我真的很困惑。我看不出这段代码与我在$ state.go()工作的其他地方的代码有什么区别。

HTML链接:

<li ng-repeat="thing in things" class="item" ng-click="showThingDetails()">

控制器中的代码:

$scope.showThingDetails = function () {
$state.go('thingDetails');}

州内代码:

.state('thingDetails', {
url: '/thingDetails',
views: {
  'menuContent': {
    templateUrl: 'templates/thingDetails.html',
    controller: 'thingDetails'
  }
}
})

thingDetails.html

<ion-view view-title="Thing Details">
  <ion-content>
    <h1>{{title}}</h1>
  </ion-content>
</ion-view>

thingDetails.js

angular.module('controllers')
  .controller('thingDetails', function($scope, $stateParams) {
    $scope.title = "thing";
});

2 个答案:

答案 0 :(得分:0)

我刚刚找到了自己问题的答案。我从我的应用程序中的另一个地方复制了状态,并在views对象中定义了templateUrl和controller,导致它被播放。我从视图对象中取出了templateUrl和controller,它工作正常。

状态中的代码现在如下所示并起作用:

.state('sweepstakeDetails', {
  url: '/sweepstakeDetails',
  templateUrl: 'templates/sweepstakeDetails.html',
  controller: 'sweepstakeDetails'
})

如果有人可以添加更详细的答案,那么我会很感激。

答案 1 :(得分:0)

你有一个名为“菜单内容”的ui视图吗?应该加载视图的位置?

否则,您可以尝试在没有menuContent视图的情况下使用此状态

.state('thingDetails', {
    url: '/thingDetails',
    templateUrl: 'templates/thingDetails.html',
    controller: 'thingDetails'  
})