在某些情况下,当我更新Angular2 Form控件时,我不想触发valueChanges事件(例如,因为更改是从我的数据库反应而不应该触发数据库写入以避免无限循环).
这对于使用"emitEvent"属性的标准FormControls非常有用,如下所示:
this.form.formGroup.controls[name].setValue(value, {emitEvent: false});
Run Code Online (Sandbox Code Playgroud)
现在我有一个案例,我想在自定义FormControl上使用该"功能",我创建了使用它registerOnChange()和writeValue()方法实现"ControlValueAccessor" .
但我不知道如何访问emitEvent属性,因为它不是传入的参数 writeValue()
有没有办法实现这一目标?谢谢!
假设我有两个收藏,任务和客户.
客户通过客户中的"customerId"字段与任务建立1:n的关系.
我现在有一个视图,我需要显示客户名称的任务.我还需要能够过滤和排序客户名称.这意味着我无法在以下查询中的$ lookup之前执行$ limit或$ match阶段.
所以这是我的示例查询:
db.task.aggregate([
{
"$match": {
"_deleted": false
}
},
"$lookup": {
"from": "customer",
"let": {
"foreignId": "$customerId"
},
"pipeline": [
{
"$match": {
"$expr": {
"$and": [
{
"$eq": [
"$_id",
"$$foreignId"
]
},
{
"$eq": [
"$_deleted",
false
]
}
]
}
}
}
],
"as": "customer"
},
{
"$unwind": {
"path": "$customer",
"preserveNullAndEmptyArrays": true
}
},
{
"$match": {
"customer.name": 'some_search_string'
}
}, …Run Code Online (Sandbox Code Playgroud)