angular - 在属性绑定中访问 Map
问题描述
我正在尝试从 Map 访问一个值并将其设置为 div 标签上的属性值,但它似乎不起作用。我的语法可能不准确。我究竟做错了什么?
<div [style.background-color]="bgcolor" width="50px" height="50px"> Hello Green</div>
<div [style.background-color]="bgcolors['a']" width="50px" height="50px"> Hello Red</div>
在我的组件中,我有这个:
bgcolor= "green";
bgcolors: Map<string,string>;
bgcolors = new Map<string,string>();
bgcolors.set("a", "red");
这是一个jsfiddle。第一个有效,第二个无效。
解决方案
下面试试。bgcolors.set()
以防万一,功能不起作用。此外,要访问地图中的项目,请使用bgcolors.get(key)
功能。
let { Component, NgModule } = ng.core;
@Component({
selector: 'my-app',
template: `
<div [style.background-color]="bgcolor" width="50px" height="50px"> Hello Green</div>
<div [style.background-color]="bgcolors.get('a')" width="50px" height="50px"> Hello Red</div>
`,
})
class HomeComponent {
bgcolor= "green";
bgcolors: Map<string,string>;
bgcolors = new Map<string,string>();
name = 'Angular 2';
constructor() {
this.bgcolors.set("a", "red");
}
}
const { BrowserModule } = ng.platformBrowser;
@NgModule({
imports: [ BrowserModule ],
declarations: [ HomeComponent ],
bootstrap: [ HomeComponent ]
})
class AppModule { }
const { platformBrowserDynamic } = ng.platformBrowserDynamic;
platformBrowserDynamic().bootstrapModule(AppModule);
推荐阅读
- java - 使用连接字符串通过 Spring Boot 连接到 Azure EventHub(Kafka like)
- javascript - 如何在 jqueryUI 小部件插件“多日期选择器”中设置动态参数值
- c# - mvvmcross WPF 显示用户对话框
- css - 具有 BEM 悬停状态的 SASS
- prestashop-1.7 - 在 prestashop 1.7.6 中覆盖模块类
- http-proxy - 从 http 访问 Caddy 服务器 API
- python - 仅将员工 ID 复制到 Excel 工作表
- python - 解决覆盖的方法?
- html - 浏览器无法再看到保存的 CSS
- powerapps - Powerapps:提交然后自动转到最后修改的文件夹,但我想要当前文件夹而不是最后一个