小编tut*_*eed的帖子

类型'Observable <any>'不能分配给'[]'类型

我是Angular2/TypeScript的新手,所以如果我做了一些愚蠢的错误,请原谅.我想要做的是从选择下拉我使用服务填充数据,这将返回一个JSON数组.

这是我的代码:

product-maintenance.component.ts

import { Component, OnInit} from '@angular/core';
import { ProductMaintenanceService } from '../../_services/product-maintenance.service';
import { ModuleConst } from '../../../data/const';
import { Product } from './product-types';
import { Products } from './products';

@Component({
  selector: 'app-product-maintenance',
  templateUrl: './product-maintenance.component.html',
  styleUrls: ['./product-maintenance.component.css']
})

export class ProductMaintenanceComponent implements OnInit {
 selectedProduct: Product = new Product(0, 'Insurance');
 products: Product[];
 productList: Products[];

 constructor( private productService: ProductMaintenanceService ) {

 }

    ngOnInit() {
      // Dropdown list
      this.products = this.productService.getProductTypeList();
    }
    // Populate data using onSelect method
    onSelect(typeid) …
Run Code Online (Sandbox Code Playgroud)

observable rxjs typescript angular

14
推荐指数
1
解决办法
6万
查看次数

角度:node_modules/@types/babel _traverse/index.d.ts(1137,43):错误 TS1109:预期的表达

我目前在 Angular 中遇到了非常奇怪的问题。一周前我在我的一个分支上工作,它很好并且构建正确。但我不知道它是如何在下面的“ng build”期间开始抱怨的,这是我今天不断遇到的错误:

node_modules/@types/babel__traverse/index.d.ts(1136,44): error TS1109: Expression expected.
node_modules/@types/babel__traverse/index.d.ts(1137,21): error TS1109: Expression expected.
node_modules/@types/babel__traverse/index.d.ts(1137,37): error TS1005: ';' expected.
node_modules/@types/babel__traverse/index.d.ts(1137,43): error TS1109: Expression expected.
node_modules/@types/babel__traverse/index.d.ts(1139,1): error TS1128: Declaration or statement expected.
Run Code Online (Sandbox Code Playgroud)

我尝试了以下选项来解决此问题,但没有取得任何成功:

选项 1 - 删除和安装 node_modules, 选项 2 - 删除和安装 @types/babel_traverse

任何人都可以让我知道可能是什么原因。这是我的本地 angular/dependancy 安装版本:

Angular CLI: 7.3.10
Node: 8.15.0
OS: win32 x64
Angular: 7.2.15
... animations, common, compiler, compiler-cli, core, elements
... forms, http, language-service, platform-browser
... platform-browser-dynamic, router, service-worker

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.13.10
@angular-devkit/build-angular      0.13.9
@angular-devkit/build-ng-packagr   0.13.9 …
Run Code Online (Sandbox Code Playgroud)

build angular-cli

9
推荐指数
5
解决办法
4104
查看次数

检查任何对象的'undefined'或'null'

我正在研究Angular项目,我不得不检查undefinednull使用Object或它的属性.通常我使用lodash _.isUndefined()参见下面的例子:

this.selectedItem.filter(i => {
    if(_.isUndefined(i.id)) {
      this.selectedItem.pop();
    }
})
Run Code Online (Sandbox Code Playgroud)

我看不出任何问题.但在审查上述代码时,我与我的同事进行了讨论.他告诉我,如果在声明之前i获取undefined,if那么它将抛出异常.相反,他建议我总是检查ii.id喜欢这个:

if(!!i && !!i.id) {
      this.selectedItem.pop();
}
Run Code Online (Sandbox Code Playgroud)

我确信他试图说的不同于他undefined在上面的代码中检查的方式.但后来我想到了洛达什的目的是什么_.isUndefined

谁能告诉我什么是最好或最干净的方法.因为对我!!i && !!i.id来说根本不可读.

提前谢谢了.

javascript lodash angular

5
推荐指数
1
解决办法
3484
查看次数

在Typescript中过滤嵌套数组对象的数组

我在过滤嵌套数组数据集时遇到了一些麻烦。例如我下面有数据数组的列表:

let list = [
{
  "percentage": 50.0,
  "budget": "online",
  "ruleName": "C1"
},
{
  "percentage": 50.0,
  "budget": "offline",
  "ruleName": "C1"
},
{
  "percentage": 50.0,
  "budget": "other",
  "ruleName": "C4"
}
Run Code Online (Sandbox Code Playgroud)

]

现在,我想使用.map.filter并考虑以下条件来实现以下结果:如果父数组子组数组的budget属性匹配,则它应仅返回内匹配的对象,而不返回所有对象

[
  {
    "budget": "online",
    "ruleName": "C1",
    "group": [
        {
            "budget": "onlne",
            "percentage": 50.0
        }
    ]
  },

  {
    "budget": "offline",
    "ruleName": "C1",
    "group": [
        {
            "budget": "offline",
            "percentage": 50.0
        }
    ]
  },

  {
    "budget": "other",
    "ruleName": …
Run Code Online (Sandbox Code Playgroud)

javascript arrays filter angular

4
推荐指数
1
解决办法
5000
查看次数