Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angular2服务呼叫期间进行筛选_Javascript_Angular_Angular2 Services - Fatal编程技术网

Javascript 如何在angular2服务呼叫期间进行筛选

Javascript 如何在angular2服务呼叫期间进行筛选,javascript,angular,angular2-services,Javascript,Angular,Angular2 Services,我想在Angular 2上开发一个模型。在本例中,我有一个名为Layer的模型,其中有多个JSON条目: Layer.ts 我还有一个模拟层注入器用于模拟: 模拟层 在现实世界中,我只返回1个模型“9.1”或“8.7”。然而,我正处于模拟阶段,我现在正在提取我的两个示例 要为这些数据提供服务,我有一个层服务: layer.service.ts 函数getLayers()返回所有图层记录。 对于我正在制作的示例,如何仅返回那些适合某个变量的层(例如Model='9.1')?您可以在创建Promis

我想在Angular 2上开发一个模型。在本例中,我有一个名为
Layer
的模型,其中有多个JSON条目:

Layer.ts 我还有一个模拟层注入器用于模拟:

模拟层 在现实世界中,我只返回1个模型“9.1”或“8.7”。然而,我正处于模拟阶段,我现在正在提取我的两个示例

要为这些数据提供服务,我有一个层服务:

layer.service.ts 函数
getLayers()
返回所有图层记录。 对于我正在制作的示例,如何仅返回那些适合某个变量的层(例如
Model='9.1'
)?

您可以在创建
Promise
之前使用:

getLayers() {
  return Promise.resolve(LAYERS.filter(layer => layer.model === 9.1));
}


更新:根据事实,为什么
==
而不是
=
=
是属性,因此:

LAYERS.filter(layer => layer.model = 9.1)
在这种情况下是完全错误的。它没有过滤任何东西,它(在plunker中试用)基本上覆盖了每个
层。model
9.1

另一方面,
=
严格相等运算符:

LAYERS.filter(layer => layer.model === 9.1)
上面的代码将生成一个数组,其中内容是每个
元素,这些元素的
模型
属性严格等于
9.1


要了解“严格”部分的更多信息,请查看。

好的,很高兴它有所帮助。我正在制作一个plunker来演示它,因为我已经成功了,不管怎样,它在这里:干杯!哦,重要的一点是:正确的是
layer.model===9.1
,而不是
layer.model=9.1
!知道了。为什么===而不是=?那太棒了。非常感谢如何通过过滤来过滤承诺?
getLayers() {
  return Promise.resolve(LAYERS.filter(layer => layer.model === 9.1));
}
LAYERS.filter(layer => layer.model = 9.1)
LAYERS.filter(layer => layer.model === 9.1)