状态更改不会覆盖模板

时间:2016-05-27 10:05:45

标签: angularjs angular-ui-router

我正在向移动平台添加日期选择器。我做了一个指令,其中有一个日期选择器,并希望能够通过进入某个州来显示它。

状态更改成功,但未显示日期选择器。我在$stateChangeError上有一个记录器,它没有记录任何内容。 成功状态更改的日志:nextState & prevState

StateChange是以ui-sref="i.settings.account.date"我已经三重检查的网址模板启动的,但我无法在此处查明问题。

$ stateProvider:

.state('i.settings', {
        url: '/settings',
        templateUrl: templateRoot + 'me/settings/settings.html',
        controller: 'MobileSettingsController',
        order: 1,
        data: {
            header: {
                name: 'mobile.header.settings'
            }
        }
    })
.state('i.settings.account', {
        url: '/account',
        templateUrl: templateRoot + 'me/settings/account.html',
        controller: 'MobileAccountSettingsController',
        order: 2,
        resolve: {
            Settings: function (account)
            {
                return account.settings();
            }
        }
    })
    .state('i.settings.account.date', {
        url: '/date',
        templateUrl: templateRoot + 'common/directives/pfMobileDatepicker/datepicker.html',
        order: 3
    })

使用角度1.4

编辑: 刚刚发现整个MobileSettingsController没有实例化。当从Web浏览器查看时,控制器在源中可用...

编辑2: 在我发布的答案中,我解决了这个问题。如果有人能告诉我为什么会这样,那将非常感激!

2 个答案:

答案 0 :(得分:0)

你错过了' i.settings.account.date'中的控制器。 ,这可能导致了这个问题。您可以在控制器中编写以下代码来测试是否所有的datepicker都被显示,而不是指令:

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){ 
    // do something
})

答案 1 :(得分:0)

通过将位置格式i.settings.account更改为date来解决此问题。通过这种方式,整个项目都可以随时使用。

从技术上讲,这是一种解决方法,我没有解决问题的核心。