自定义aurelia组件中的内联模板

自定义aurelia组件中的内联模板,aurelia,aurelia-templating,Aurelia,Aurelia Templating,在aurelia中,对于视图,我可以通过实现getViewStrategy方法并在ViewModel中返回InlineViewStrategy来提供内联模板。但这只适用于视图,而不适用于自定义元素。是否有类似的方法为自定义元素提供内联模板 谢谢您只需要使用@inlineView装饰器。以下是一个要点: 从'aurelia framework'导入{inlineView}; @inlineView('来自内联视图的Hello') 导出类InlineViewCustomElement{ } 您只需使

在aurelia中,对于视图,我可以通过实现getViewStrategy方法并在ViewModel中返回InlineViewStrategy来提供内联模板。但这只适用于视图,而不适用于自定义元素。是否有类似的方法为自定义元素提供内联模板


谢谢

您只需要使用
@inlineView
装饰器。以下是一个要点:

从'aurelia framework'导入{inlineView};
@inlineView('来自内联视图的Hello')
导出类InlineViewCustomElement{
}

您只需使用
@inlineView
装饰器即可。以下是一个要点:

从'aurelia framework'导入{inlineView};
@inlineView('来自内联视图的Hello')
导出类InlineViewCustomElement{
}

您可以使用绑定到
compose
元素的InlineViewStrategy实例。 下面是一个演示:

自定义元素: inline.js

templateChanged()
确保此演示具有真实的动态行为(键入时重新呈现)。不过,并非所有情况下都需要它

从“aurelia框架”导入{bindable,bindingMode,InlineViewStrategy};
内联导出类{
视野策略;
@可绑定({defaultBindingMode:bindingMode.oneWay})
样板
@可绑定({defaultBindingMode:bindingMode.oneWay})
显示值;
附({
这个。render();
}
templateChanged(){
这个。render();
}
render(){
this.viewStrategy=newinlineviewstrategy(`${this.template}`);
}
}
inline.html


视图中的用法: 例如,我们想显示一个漂亮的图标

app.js

导出类应用程序{
customTemplate='';
customValue='堆栈溢出';
}
app.html


自定义组件中的内联模板
模板:
显示值:
渲染视图:

希望,这会有所帮助。

您可以使用绑定到
compose
元素的InlineViewStrategy实例。 下面是一个演示:

自定义元素: inline.js

templateChanged()
确保此演示具有真实的动态行为(键入时重新呈现)。不过,并非所有情况下都需要它

从“aurelia框架”导入{bindable,bindingMode,InlineViewStrategy};
内联导出类{
视野策略;
@可绑定({defaultBindingMode:bindingMode.oneWay})
样板
@可绑定({defaultBindingMode:bindingMode.oneWay})
显示值;
附({
这个。render();
}
templateChanged(){
这个。render();
}
render(){
this.viewStrategy=newinlineviewstrategy(`${this.template}`);
}
}
inline.html


视图中的用法: 例如,我们想显示一个漂亮的图标

app.js

导出类应用程序{
customTemplate='';
customValue='堆栈溢出';
}
app.html


自定义组件中的内联模板
模板:
显示值:
渲染视图:

希望,这会有帮助。

这绝对是一个正确的答案。但是,我不知道如何根据可绑定属性的值动态提供模板。视图中的getViewStrategy方法在管道中的activate方法之后由aurelia framework调用,因此,当调用getViewStrategy时,我可以获取模型(如果通过compose添加视图)或参数(如果视图在路由器视图中)。对于自定义元素是否有类似于钩子的getViewStrategy?我问过团队。这里给出的理由是,“基本上,如果我们允许它会导致每个自定义元素的创建都是异步的。这将是性能和复杂性的一个大问题。因此,我们基本上将其隔离到路由器视图和组合(或者人们编写自定义元素来做同样的事情)如果有人需要自定义元素,我通常会建议他们创建一个使用compose的内部视图的元素,然后在那里处理它。“我理解它可能导致ans的性能后果,我猜Marton Sagi answer遵循团队的建议。我之所以需要这种行为,是因为我在一个使用aurelia+polymer的项目中,并且经常重复。我想,对于像paper menu button这样的polymer小部件,for不起作用。for通过任务队列填充dom,polymer不侦听dom中的更改,因此,使用repeat.for将纸张项目项添加到纸张菜单按钮不会产生预期效果。我们的目标是在我将项目数组绑定到repeat.forThings之后重新编写整个模板。自发布此评论以来,内容可能已更改。在创建多个
纸质项目的示例中使用
repeat.for
,这绝对是正确的答案。但是,我不知道如何根据可绑定属性的值动态提供模板。视图中的getViewStrategy方法在管道中的activate方法之后由aurelia framework调用,因此,当调用getViewStrategy时,我可以获取模型(如果通过compose添加视图)或参数(如果视图在路由器视图中)。对于自定义元素是否有类似于钩子的getViewStrategy?我问过团队。这里是给出的推理,“基本上,如果我们允许它会导致每个自定义元素的创建是异步的。这将是性能和复杂性的一个大问题。因此,我们基本上将其隔离到路由器视图和组合(或自定义元素)
import {inlineView} from 'aurelia-framework';

@inlineView('<template>Hello from the inline view</template>')
export class InlineViewCustomElement {
}