Aurelia自定义元素实例创建
Aurelia custom element instance creation
如何在绑定对象更新时创建自定义元素的新实例?假设视图中有一个visitDate,它可以由用户更改。当它改变时,我想更新页面的内容。视图模型:
...
visitDateChanged() {
this.shifts = [];
this.newShift = {};
this.newShift = {pstart: this.visitDate, pstop: this.visitDate});
this.service.getData(this.visitDate)
.then(result => this.shifts = result);
}
}
视图:
<div repeat.for="shift of shifts | filterDate: visitDate">
<shift-form shift.bind="shift" shifts.bind="shifts"></shift-form>
</div>
<div>
<shift-form shift.bind="newShift" shifts.bind="shifts"></shift-form>
</div>
注意:shift-form是自定义元素。现在,如果我在视图中更改visitDate,它将调用visitDateChanged()并更新newShift和shift变量。它分离了所有名为insidediv repeat的移位形式实例。For和根据shift数组中的对象附加新的实例。但它不分离和重新连接shift-form(不创建一个新的实例的shift-form)在第二个div内。我需要一个新的实例的shift-form内div当newShift被重新创建。我设法通过将newShift从对象更改为一个数组来做到这一点。
<div repeat.for="shift of newShift">
<shift-form shift.bind="shift" shifts.bind="shifts"></shift-form>
</div>
可以,但我不认为这是一个优雅的解决方案
作为Ashley Grant建议我有一个重置功能,但我不听一个变化。我有一个ref的元素,并在需要时在外部调用reset函数。
<some-element controller.ref='someVariableNameHere'></some-element>
和在控制器中使用这个ref:
this.someVariableNameHere.viewModel.reset();
相关文章:
- 实例创建(JS)
- 如何在JavaScript中创建实例的实例
- 使用模型创建实例显示'不是函数'(节点使用猫鼬)
- Backbone.Model.extend不创建实例属性
- 在 ES6(量角器页面对象)中创建实例的正确方法
- 获取创建实例的父函数
- 如何显式创建实例变量
- 如何在 JavaScript 中创建实例变量
- 如何使用新构造函数为 json 中的每个节点创建实例
- 构造函数中的私有函数声明是否在每次创建实例时重新实例化
- 创建实例时覆盖的主干视图类事件
- 创建实例并传递给构造函数或在构造函数内部创建
- 在 javascript 中的类中为私有函数创建实例
- 创建实例,不带' new '操作符,参数列表可变
- Jquery -在document.ready()上创建实例后更改对象属性
- 在dojo的addOnLoad方法中创建实例没有全局作用域
- Ember js 1.12.0 -创建实例失败
- 命名textarea不要在form中创建实例
- 我们可以从jsonObject创建实例吗?
- 我应该创建实例的模块或不