如何解决this.toggleProperty("editing") 在 ember.js 中是如何工作的?
代码
import Ember from 'ember';
export default Ember.Component.extend({
editing: false,actions: {
editTodo() {
this.toggleProperty("editing");
},submitTodo() {
const todo = this.get("todo");
if (todo.get("title") == "") {
todo.destroyRecord().then(() => {
this.toggleProperty("editing");
});
} else {
this.toggleProperty("editing");
}
},deleteTodo() {
this.get("todo").destroyRecord();
}
}
});
这个“编辑”属性是如何起作用的,谁能解释一下?我是 ember 的新手
解决方法
首先,这看起来像旧的 ember 代码。在现代余烬中,我会这样做:
@tracked editing = false;
@action
editTodo() {
this.editing = !this.editing;
}
...
这也解释了旧的 toggleProperty
的工作原理。 Its basically this:
toggleProperty(name) {
this.set(name,!this.get(name));
}
其中(如果您了解旧的余烬 get
和 set
)基本上是这样的:
toggleProperty(name) {
this[name] = !this[name];
}
但也会通知 ember 已更改的属性,因此 ember 将更新 DOM。现代 ember 不需要它,因为它使用 @tracked
来标记状态,其余的将正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。