【发布时间】:2020-03-14 18:25:05
【问题描述】:
旧方法
我是角度方面的新手。我在组件导出类中有硬编码对象 我用于数据绑定。它在那里工作正常。现在我需要 用实时数据替换相同的对象。
newProduct: any = [
{ product: "some1", checked: true },
{ product: "some2", checked: false }
]
<input id="checkbox" type="checkbox" value="{{newProduct[0].product}}" [(ngModel)]="newProduct[0].checked" [ngModelOptions]="{standalone: true}" (change)="productNotSelected()" checked /><span>{{newProduct[0].product}}</span>
到目前为止我所做的是我在 NgOninit 方法中调用 API 并获取 正确响应。这是我正在调用的函数 NgOninit.This 给我错误,如绑定后检查未定义。
**API Response Object**
[{
active: "Y"
activeYn: "Y"
category: "somehting"
id: 1
sortOrder: "1"
subProducts:"[
{
active: "Y"
backEndName: "some1"
checked: "true"
displayName: "some1"
id: 100
sortOrder: "1"
}
},
{
active: "Y"
activeYn: "Y"
category: "somehting"
id: 1
sortOrder: "1"
subProducts:"[
{
active: "Y"
backEndName: "some2"
checked: "true"
displayName: "some2"
id: 200
sortOrder: "1"
}
}
]
listproduct()
{
// let checked;
// let active;
this.http.getData("findproduct").subscribe((d) => {
let mydata = d;
this.result = mydata;
console.log("@@@@@@@@@",this.result);
this.selProducts = this.result;
console.log("@@@@@@@@@",this.selProducts);
for(var i =0 ;i<this.selProducts.length;i++){
let p1 = this.selProducts[i].subProducts.filter(p => p.checked);
// let p2 = p1.filter(p => p.checked == "false");
let p2 = p1.filter(p => {
if (p.checked) {
this.checked = p.checked;
var product = p.backEndName;
this.active = p.active;
this.newProduct.push({
product: product,
checked: (this.checked === 'true'),
active :this.active
});
}
});
}
},
err => {
this.result = err;
});
}
有人可以建议我用实时 api 替换硬编码对象的最佳方法是什么? 这样其余的功能就不会中断。
【问题讨论】:
-
子产品是否有单一条目??你能发布整个api响应吗,它会清除图片
-
我更清楚地更新了我的问题