我是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) 我目前在 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) 我正在研究Angular项目,我不得不检查undefined或null使用Object或它的属性.通常我使用lodash _.isUndefined()参见下面的例子:
this.selectedItem.filter(i => {
if(_.isUndefined(i.id)) {
this.selectedItem.pop();
}
})
Run Code Online (Sandbox Code Playgroud)
我看不出任何问题.但在审查上述代码时,我与我的同事进行了讨论.他告诉我,如果在声明之前i获取undefined,if那么它将抛出异常.相反,他建议我总是检查i或i.id喜欢这个:
if(!!i && !!i.id) {
this.selectedItem.pop();
}
Run Code Online (Sandbox Code Playgroud)
我确信他试图说的不同于他undefined在上面的代码中检查的方式.但后来我想到了洛达什的目的是什么_.isUndefined?
谁能告诉我什么是最好或最干净的方法.因为对我!!i && !!i.id来说根本不可读.
提前谢谢了.
我在过滤嵌套数组数据集时遇到了一些麻烦。例如我下面有数据数组的列表:
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) angular ×3
javascript ×2
angular-cli ×1
arrays ×1
build ×1
filter ×1
lodash ×1
observable ×1
rxjs ×1
typescript ×1