Я пытаюсь вернуться в родном состоянии, как это было много раз в моем приложении для ионического звука. Но на этот раз он просто не хочет этого делать.Изменение состояния ничего не делает
Вот где я звоню $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">
Все отлично работает везде, но здесь ... Что происходит?
Не могли бы вы добавить 'concole.log (catId);' перед вашим '$ state.go ('^. Cat', {'cat': catId});'? Потому что, если параметр не определен, ошибок не будет. –
Сделал это, catId - '1'. –
Хорошо. Не могли бы вы также добавить 'console.log' в свой раздел разрешений (в состоянии menu.cat) и внутри вашего CatDetailCtrl? –