我正在创建一个使用Angular 6(# Django 1.11 already includes OuterRef and Subquery, but I'm working with Django 1.9
from django_subquery.expressions import OuterRef, Subquery
items = B.objects.filter(my_type=OuterRef('type')).order_by('position')
A.objects.all().annotate(position=Subquery(items.values('position')[:1])).order_by('position')
)和@ uirouter / angular(6.0.6
)的应用程序。但是我的应用程序未协调路线“ 2.0.0
”,仅导航到“ /login
”(即使我删除了“ /
”)
此应用程序包含具有多个页面的多个模块。结构可以描述如下:
otherwise: '/'
两个模块都有一个单独的路由文件。我认为它将起作用的方式如下(简化示例,不要介意缺少的部分):
app.module.ts
app/
-- home/
---- home.module.ts
---- home.component.ts
---- home.route.ts
---- home.scss
---- home.html
-- login/
---- login.module.ts
---- login.component.ts
---- login.route.ts
---- login.scss
---- login.html
-- app.module.ts
-- app.component.ts
home.module.ts
@NgModule({
declarations: [AppComponent],
imports: [
UIRouterModule.forRoot({otherwise: '/'}),
HomeModule,
LoginModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
home.route.ts
@NgModule({
imports: [
UIRouterModule.forChild({states: [homeState]}),
NavbarModule
],
declarations: [HomeComponent],
providers: []
})
export class HomeModule {
}
login.module.ts
export const homeState: Ng2StateDeclaration = {
name: 'home',
url: '/',
component: HomeComponent
};
login.route.ts
@NgModule({
imports: [
UIRouterModule.forChild({states: [loginState]}),
],
declarations: [LoginComponent],
providers: []
})
export class LoginModule {
}
我希望export const loginState: Ng2StateDeclaration = {
name: 'login',
url: '/login',
component: LoginComponent
};
方法只会将路由添加到配置中。但是UIRouterModule.forChild()
路由未得到协调,仅导航回到/login
。我不不想在所有路由都发生的地方创建一个子模块,因为那样的话,我还必须导入组件在该模块中的所有依赖关系(到目前为止,关注点和模块化)。
对于我的示例应用程序,其外观如下:
/
const states = [homeState, loginState];
@NgModule({
imports: [
UIRouterModule.forChild({states: [states], otherwise: '/'}),
NavbarModule
],
declarations: [HomeComponent, loginComponent],
providers: []
})
export class AppRoutingModule {
}
不需要loginComponent
,但仍然可以通过这种方式获取。.
由于这行不通,所以我显然做错了。谁能告诉我我做错了什么以及应该如何解决?