Aurelia 奥雷利亚组合
关于Aurelia的Aurelia 奥雷利亚组合,aurelia,aurelia-templating,Aurelia,Aurelia Templating,关于Aurelia的元素的快速问题。我曾希望使用它插入自定义元素作为表单控件,如下所示: <!-- Loop through form controls --> <div class="form-group" repeat.for="control of controls"> <label><span t="${control.label}"></span></label> <compose view-mode
元素的快速问题。我曾希望使用它插入自定义元素作为表单控件,如下所示:
<!-- Loop through form controls -->
<div class="form-group" repeat.for="control of controls">
<label><span t="${control.label}"></span></label>
<compose view-model="resources/elements/${control.type}/${control.type}"
value.bind="control.value" data.bind="control.data" placeholder.bind="control.placeholder"></compose>
</div>
<compose view-model="resources/elements/${control.type}/${control.type}"
model.bind="{'control': control, 'model': model, 'readonly': readonly}">
</compose>
我发现有趣的是,当您使用
model.bind
时,不需要使用@bindable
装饰器来接收参数。它们在视图中立即可用。使用model.bind怎么样
<!-- Loop through form controls -->
<div class="form-group" repeat.for="control of controls">
<label><span t="${control.label}"></span></label>
<compose view-model="resources/elements/${control.type}/${control.type}"
model.bind="control"></compose>
</div>
然后视图模型可以从其模型
属性访问值
、数据
和占位符
。
可以访问外部范围,因此无需绑定任何内容。这应该起作用:
用法
<compose view-model="resources/elements/${control.type}/${control.type}"></compose>
HTML
<template>${propertyFromParent}</template>
${propertyFromParent}
运行示例此作用域是否仅在
bind()
方法中可用,还是始终可用?在bind
之后的所有时间,我想Fabio,我已经尝试过了,但根本不起作用bind(){console.log(“EwTextbox bind():”,this);}
仅显示\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu此.control
未定义。如果您将model=“control”
添加到
标记中,则上述操作将有效。感谢您的贡献,因为它帮助我获得了全局解决方案,我将其添加到了问题编辑中。@l如果
可以访问外部范围,则无需使用model.bind
。但是,如我所说,在bind()
方法中无法访问数据。对不起,我对那部分的理解是错误的。但是,您仍然可以在视图中使用该属性。请看,我刚刚从Ashley Grant那里了解到,您不能将@bindable
参数与
一起使用,如果您有一个仅视图的元素,则视图连接到外部范围,但是如果您有一个视图模型,则需要通过model.bind
传递。我发现有趣的是,当您使用model.bind时,您不需要使用@bindable装饰器来接收参数。它们在视图中立即可用。这仍然是真的吗?我似乎找不到一种方法让Aurelia将模型
属性绑定到viewmodel,而不自己主动分配它们。。。