Angular 嵌套对象绑定在按钮 onclick 中不起作用
Angular nested object binding not working inside button onclick
<button (click)=updateDetails(app.id, app.extension.applicationId)>
click this button
</button>
<br/>
<span>{{ app.extension.applicationId }}</span>
如果我从 angular 组件代码中删除 HTML 按钮元素,应用程序似乎会正确打印 app.extension.applicationId 的值。但是如果我添加 HTML 按钮元素代码然后我在编译期间看到以下错误,
Argument of type 'extension' is not assignable to the parameter of
type 'string'
我在应用程序视图中使用嵌套对象。
下面有更多详细信息
我正在使用的 Rest 服务响应
{
"id": 86,
"parentId": 65,
"parentApplication": "Digital Tools",
"extension": {
"applicationId": 89,
"applicationName": "ChatBot",
"applicationRegion": "NA",
}
}
updateDetails 方法签名
updateDetails(id: number, applicationId: string)
我创建的接口
interface Extension {
applicationId: string;
applicationName: string;
applicationRegion: string;
}
export interface Application {
id: number;
parentId: string;
parentApplication: string;
extension: {
[key: string]: Extension;
};
}
应用程序正确打印所有 JSON 响应 属性 值,只有 属性 app.extension.applicationId 在 Angular click 函数中使用时会抛出错误.
但是如果我将 app.parentApplication 作为参数传递,该函数似乎可以正常编译。我认为问题与嵌套有关。
因为你的app.extension.applicationId
被认为是Extension
。
当我看到您从服务中得到的响应时,我认为 interface Application
是错误的。我想你想写这个:
export interface Application {
id: number;
parentId: string;
parentApplication: string;
extension: Extension; // <- this
}
您还忘记了 html 代码中 updateDetails
周围的引号:
<button (click)="updateDetails(app.id, app.extension.applicationId)">
click this button
</button>
<button (click)=updateDetails(app.id, app.extension.applicationId)>
click this button
</button>
<br/>
<span>{{ app.extension.applicationId }}</span>
如果我从 angular 组件代码中删除 HTML 按钮元素,应用程序似乎会正确打印 app.extension.applicationId 的值。但是如果我添加 HTML 按钮元素代码然后我在编译期间看到以下错误,
Argument of type 'extension' is not assignable to the parameter of type 'string'
我在应用程序视图中使用嵌套对象。
下面有更多详细信息
我正在使用的 Rest 服务响应
{
"id": 86,
"parentId": 65,
"parentApplication": "Digital Tools",
"extension": {
"applicationId": 89,
"applicationName": "ChatBot",
"applicationRegion": "NA",
}
}
updateDetails 方法签名
updateDetails(id: number, applicationId: string)
我创建的接口
interface Extension {
applicationId: string;
applicationName: string;
applicationRegion: string;
}
export interface Application {
id: number;
parentId: string;
parentApplication: string;
extension: {
[key: string]: Extension;
};
}
应用程序正确打印所有 JSON 响应 属性 值,只有 属性 app.extension.applicationId 在 Angular click 函数中使用时会抛出错误. 但是如果我将 app.parentApplication 作为参数传递,该函数似乎可以正常编译。我认为问题与嵌套有关。
因为你的app.extension.applicationId
被认为是Extension
。
当我看到您从服务中得到的响应时,我认为 interface Application
是错误的。我想你想写这个:
export interface Application {
id: number;
parentId: string;
parentApplication: string;
extension: Extension; // <- this
}
您还忘记了 html 代码中 updateDetails
周围的引号:
<button (click)="updateDetails(app.id, app.extension.applicationId)">
click this button
</button>