Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 改变状态没有任何作用_Angularjs_Ionic Framework_Angular Ui Router - Fatal编程技术网

Angularjs 改变状态没有任何作用

Angularjs 改变状态没有任何作用,angularjs,ionic-framework,angular-ui-router,Angularjs,Ionic Framework,Angular Ui Router,我正试图回到兄弟姐妹的状态,就像我在Ionic应用程序中做的很多次一样。但这次它只是不想这么做 这里是我调用$state的地方: dataProvider.custom('/api/cats/' + catId + '/', { method: 'PUT', data: data, headers: {

我正试图回到兄弟姐妹的状态,就像我在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(抽象状态)


catAddChange.html:

<ion-view view-title="Change or add a cat"  class="animated slideInUp">


除了这里,其他地方一切都很好。。。发生了什么事?

错误在于提供给
菜单的参数类型。cat
状态

使用
typeof
进行调试后,
catId
类型为
string
,因此状态不接受,因为它需要
int

总之,我需要确保参数的类型符合
状态
的预期(
int
)。如果它接收到的是
“1”
(字符串)而不是1(数字),而没有任何错误,则它将无法工作


很难找到这个,希望这能有所帮助。

你能添加
concole.log(catId)就在
$state.go('^.cat',{'cat':catId})之前?因为若参数未定义,则不会出现错误。若未定义,则catId为
1
。确定。您还可以将
console.log
放在解析部分(在menu.cat state中)和CatDetailCtrl中吗?当然,
console.log
在解析时不会触发,在
CatDetailCtrl
中显示1,这很奇怪。接下来会发生什么?页面是否呈现?控制台中有错误吗?是否显示了“项”?实际上,我的第一个问题是关于参数的类型。我敢肯定,在控制台中,您得到的是
“1”
,而不是
1
console.log()
打印
1
,在这两种情况下,都只是测试了它。对不起,我很惊讶,甚至
console.log(“1”)'打印
1
<ion-view view-title="Change or add a cat"  class="animated slideInUp">