我使用Yeoman(angular-fullstack)创建了一个项目。现在我想知道如何更改/设置login.html的主视图。因此,通常在启动应用程序时,首先会获得可以选择登录或注册的主视图。我想要的是当应用程序启动页面时直接在login.html上启动
答案 0 :(得分:1)
client\app\app.js
的app.js文件中的,在angular config中添加以下内容:
$stateProvider
.run(function ($state) {
$state.go('login');
});
所以看起来应该是这样的:
.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
$urlRouterProvider
.otherwise('/');
$locationProvider.html5Mode(true);
$httpProvider.interceptors.push('authInterceptor');
$stateProvider
.run(function ($state) {
$state.go('login');
});
})
答案 1 :(得分:1)
我意识到这已经有一段时间了,你可能已经有了一个很好的解决方案,但我最近在看这个并看到了几个选项。
一,在app.js中你可以在$ urlRouterProvider下添加以下代码片段:
.when('/', '/login')
使您的完整方法如下:
.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
$urlRouterProvider
.when('/', '/login')
$locationProvider.html5Mode(true);
$httpProvider.interceptors.push('authInterceptor');
})
这会强制任何人直接登录您的基页网址,除非他们提供到另一个网页的完整路线。但是,如果您打算仍然使用main.html,则需要进入client / app / main / main.js并将默认路由更改为:
.state('main', {
url: '/main',
templateUrl: 'app/main/main.html',
controller: 'MainCtrl'
});
因此可以通过将/ main附加到网址来获取main。
这让我看到选项2:进入main.js文件并将其url切换为'/ main'并进入login.js并将其url切换为'/'。然后导航到您的基页的任何人都会自动进入登录屏幕,但该网址只被视为您的域,没有任何子页面。
所以client / app / main / main.js变为:
.state('main', {
url: '/main',
templateUrl: 'app/main/main.html',
controller: 'MainCtrl'
});
客户/ app / account / account.js现在包含:
.state('login', {
url: '/',
templateUrl: 'app/account/login/login.html',
controller: 'LoginCtrl'
})