【发布时间】:2016-05-27 17:44:27
【问题描述】:
我正在尝试回到兄弟状态,就像我在 Ionic 应用程序中所做的很多次一样。但这一次它只是不想这样做。
这是我打电话给$state的地方:
dataProvider.custom('/api/cats/' + catId + '/',
{
method: 'PUT',
data: data,
headers: {
'Content-Type': undefined
},
transformRequest: function (data, headersGetter) {
var formData = new FormData();
angular.forEach(data, function (value, key) {
formData.append(key, value);
});
headers = headersGetter();
delete headers['Content-Type'];
return formData;
}
})
.then(function (resp) {
$state.go('^.cat', {'cat': catId});
});
这是我的状态:
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'templates/login.html'
})
.state('menu', {
url: '/menu',
abstract: true,
templateUrl: 'templates/main.html',
onEnter: function($state, Auth){
if(!Auth.isLoggedIn()) {
$state.go('login');
}
}
})
.state('menu.home', {
url: '/devel',
views: {
'menuContent': {
templateUrl: 'templates/devel.html',
}
}
})
.state('menu.catspad', {
url: '/catspad',
views: {
'menuContent': {
templateUrl: 'templates/catspad.html',
controller: 'CatspadCtrl',
}
}
})
.state('menu.cats', {
url: '/cats',
views: {
'menuContent': {
templateUrl: 'templates/cats.html',
controller: 'CatsCtrl',
resolve: {
items: ['dataProvider', function (dataProvider) {
return dataProvider.fetch('/api/cats/')
}]
}
}
}
})
.state('menu.cat', {
url: '/cat/view/{cat:int}',
views: {
'menuContent': {
templateUrl: 'templates/cat.html',
controller: 'CatDetailCtrl',
resolve: {
items: ['dataProvider', '$stateParams', function(dataProvider, $stateParams) {
return dataProvider.fetch('/api/cats/' + $stateParams.cat + '/detail/');
}]
}
}
}
})
.state('menu.catAddChange', {
url: '/cat/addchange?cat',
views: {
'menuContent': {
templateUrl: 'templates/catAddChange.html',
controller: 'CatAddChangeCtrl',
resolve: {
items: ['dataProvider', '$stateParams', function(dataProvider, $stateParams)
{
if ($stateParams.cat) {
return dataProvider.fetch('/api/cats/' + $stateParams.cat + '/detail/')
}}]
}
}
}
})
.state('menu.me', {
url: '/me',
views: {
'menuContent': {
templateUrl: 'templates/account.html',
controller: 'AccountCtrl',
}
}
})
.state('register', {
url: '/register',
templateUrl: 'templates/register.html'
});
$urlRouterProvider.otherwise('/menu/cats');
$ionicConfigProvider.views.transition("none");
相关HTML:
main.html(抽象状态)
<ion-nav-view name="menuContent" class="customViewStyle"></ion-nav-view>
catAddChange.html:
<ion-view view-title="Change or add a cat" class="animated slideInUp">
一切都很好,但在这里......发生了什么?
【问题讨论】:
-
您可以在您的
$state.go('^.cat', {'cat': catId});之前添加concole.log(catId);吗?因为如果参数未定义,则不会出错。 -
成功了,catId 是
1。 -
好的。您能否也将
console.log放入您的解析部分(在 menu.cat 状态)和 CatDetailCtrl 中? -
当然,
console.log不会在解析中触发,而是在CatDetailCtrl中显示 1 -
这很奇怪。接下来会发生什么?页面是否呈现?控制台中的任何错误?是否展示了“项目”?
标签: angularjs ionic-framework angular-ui-router