angular - 下拉列表禁用/启用基于加载完成与否
问题描述
我想在加载时禁用下拉列表,因此用户无法单击项目。完成加载后,启用它。有一个属性禁用,所以我将它与一个布尔值绑定。
编码:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<div class="example-wrapper">
<p>T-shirt size:</p>
<kendo-dropdownlist
[data]="listItems"
disable="loading">
</kendo-dropdownlist>
</div>
})
export class AppComponent implements OnInit{
public loading: boolean;
public listItems: Array<string>;
ngOnInit() {
this.loading = true;
this.listItems = ["X-Small", "Small", "Medium", "Large", "X-Large", "2X-Large"];
setTimeout(function(){ this.loading = false; }, 5000);
}
}
但它不起作用,这意味着即使我更改了布尔值,也不会对其产生影响。
我的问题:
如何让它发挥作用?如果没有,有什么替代方法可以添加旋转叠加层吗?
解决方案
您需要disabled
使用方括号表示法将该属性绑定到您的模型。并且您将disabled
属性拼错为disable
.
[disabled]="loading"
此外,您为回调使用了 a function() { }
,这意味着它this
的范围仅限于函数本身。您需要使用箭头函数来更新组件属性。
<kendo-dropdownlist [data]="listItems" [disabled]="loading">
</kendo-dropdownlist>
推荐阅读
- php - 如何通过 google-api-php-client 使用沙盒
- reactjs - 由于以下错误,WebPack SockJS 构造失败:“可能无法从通过 HTTPS 加载的页面启动不安全的 SockJS 连接”
- wordpress - 使用 wp Rocket 排除缓存功能
- java - 如何在 AsyncTask 中获得速度?
- javascript - 为什么行数比我的网格中的列数少一?
- python - 我应该在 K 折交叉验证循环之间重新初始化整个模型吗?我该怎么做?
- python - Python如何遍历嵌套json中的所有键和值以放入csv文件
- graphql - 在 graphql 模式指令中,有没有办法检查预期的返回字段是否不可为空
- php - 如何包含/要求文件中的部分文本?
- python - 根据地理数据框检查 Numpy 3d 数组