您是否可以在mongoose模式中使用对几个不同模式选项的引用来填充数组?
为了澄清这个问题,请说我有以下模式:
var scenarioSchema = Schema({
_id : Number,
name : String,
guns : []
});
var ak47 = Schema({
_id : Number
//Bunch of AK specific parameters
});
var m16 = Schema({
_id : Number
//Bunch of M16 specific parameters
});
Run Code Online (Sandbox Code Playgroud)
我可以用一堆ak47 或 m16 填充枪阵吗?我可以把BOTH放在同一个枪阵中吗?或者它是否需要在资产数组中使用填充ref,这样会将其限制为单个特定类型?
guns: [{ type: Schema.Types.ObjectId, ref: 'm16' }]
Run Code Online (Sandbox Code Playgroud)
我知道我可以为不同的枪类型提供单独的数组,但是随着项目的扩展,这将在模式中创建大量的额外字段,其中大部分将根据加载的方案保留为空.
var scenarioSchema = Schema({
_id : Number,
name : String,
ak47s : [{ type: Schema.Types.ObjectId, ref: 'ak47' }],
m16s: [{ type: Schema.Types.ObjectId, ref: 'm16' …Run Code Online (Sandbox Code Playgroud) 我是通过RxJS文档阅读,并希望确保我理解之间的差异Subscriber.unsubscribe()和Subscriber.complete().
假设我有两个订阅者,即subscriber1和subscriber2的observable.如果subscriber1呼叫取消订阅他们的订阅,它将不再接收来自observable的通知,但subscriber2将继续接收它们.
文档.complete():
Observer回调从Observable接收类型为complete的无值通知.通知Observer Observable已完成发送基于推送的通知.
这是否意味着在上面的相同场景中,subscriber1可以调用complete并且它将结束observable并停止subscriber1和subscriber2的流?
我一直在玩Angular2的动画DSL,我对如何将动画限制为特定的媒体屏幕大小感到困惑.
例如,假设我在主页上有400px宽的徽标,当用户访问计算机显示器上的任何其他页面时,缩小到200px宽.
...
animations: [
trigger('homeLogoState',[
state('inactive', style({
width: '200px',
transition: 'width'
})),
state('active', style({
width: '400px',
transition: 'width'
})),
transition('inactive <=> active', animate('300ms ease-in'))
])
]
...
Run Code Online (Sandbox Code Playgroud)
然而,在移动设备上,每页需要保持100px.
我理解我可以通过控制DOM中显示的内容来控制不同的动画,如下所示,但这可能会产生大量的代码重复,以处理每个屏幕大小的每个动画变化.
<div class="hidden-under-1920px" @logoAnimationOne="page">
<img src="logo.png">
</div>
<div class="hidden-under-1280px" @logoAnimationTwo="page">
<img src="logo.png">
</div>
Run Code Online (Sandbox Code Playgroud)
将不同的动画约束到特定的@media选择器大小的正确方法是什么?