ionic $state.go 未加载页面或显示错误
ionic $state.go not loading page or showing error
我在我的应用程序的其他地方使用了 $state.go() ,但它在一个简单的函数中不起作用,我无法弄清楚为什么。它没有显示错误或显示在 $state.go().
中调用的正确状态
我已经用 $stateChangeStart、$stateChangeError、$viewContentLoading 和 $stateChangeSuccess 对其进行了测试。它到达了所有正确的阶段:$stateChangeStart、$viewContentLoading,然后是 $stateChangeSuccess,每个阶段都有正确的内容,但是没有加载页面。
我最初用 ui-sref 尝试过,但没有用,所以我用 $state.go() 试过,但现在不起作用,我真的很困惑。我看不出这段代码和我在 $state.go() 工作的其他地方的代码有什么区别。
HTML link:
<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";
});
我刚刚找到了我自己问题的答案。我从我的应用程序的另一个地方复制了状态,并在视图对象中定义了 templateUrl 和控制器,这导致它播放。我从视图对象中取出了 templateUrl 和控制器,它起作用了。
状态中的代码现在如下所示并且有效:
.state('sweepstakeDetails', {
url: '/sweepstakeDetails',
templateUrl: 'templates/sweepstakeDetails.html',
controller: 'sweepstakeDetails'
})
如果有人可以添加更详细的答案来说明原因,我将不胜感激。
您是否有一个名为 'menuContent' 的 ui 视图,应该在其中加载该视图?
否则您可以尝试在没有 menuContent 视图的情况下使用此状态
.state('thingDetails', {
url: '/thingDetails',
templateUrl: 'templates/thingDetails.html',
controller: 'thingDetails'
})
我在我的应用程序的其他地方使用了 $state.go() ,但它在一个简单的函数中不起作用,我无法弄清楚为什么。它没有显示错误或显示在 $state.go().
中调用的正确状态我已经用 $stateChangeStart、$stateChangeError、$viewContentLoading 和 $stateChangeSuccess 对其进行了测试。它到达了所有正确的阶段:$stateChangeStart、$viewContentLoading,然后是 $stateChangeSuccess,每个阶段都有正确的内容,但是没有加载页面。
我最初用 ui-sref 尝试过,但没有用,所以我用 $state.go() 试过,但现在不起作用,我真的很困惑。我看不出这段代码和我在 $state.go() 工作的其他地方的代码有什么区别。
HTML link:
<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";
});
我刚刚找到了我自己问题的答案。我从我的应用程序的另一个地方复制了状态,并在视图对象中定义了 templateUrl 和控制器,这导致它播放。我从视图对象中取出了 templateUrl 和控制器,它起作用了。
状态中的代码现在如下所示并且有效:
.state('sweepstakeDetails', {
url: '/sweepstakeDetails',
templateUrl: 'templates/sweepstakeDetails.html',
controller: 'sweepstakeDetails'
})
如果有人可以添加更详细的答案来说明原因,我将不胜感激。
您是否有一个名为 'menuContent' 的 ui 视图,应该在其中加载该视图?
否则您可以尝试在没有 menuContent 视图的情况下使用此状态
.state('thingDetails', {
url: '/thingDetails',
templateUrl: 'templates/thingDetails.html',
controller: 'thingDetails'
})