参考自定义元素视图模型在槽内
Aurelia - Reference custom element view model inside slot
如果我有一个这样的自定义元素:
export class mycomponent {
constructor() {
this.name = 'John Doe';
}
}
<template>
My component
<slot></slot>
</template>
并在另一个视图中使用该组件(我全局注册了自定义元素):
<template>
<mycomponent>
Test
${name}
</mycomponent>
</template>
是否可以在这个范围内访问mycomponent
的视图模型?比如打印它的属性name
?
编辑所以这是我的最终解决方案:gist my solution
我把可替换的部分放在我的自定义元素中:
<template>
<template replaceable part="content"></template>
</template>
,然后是视图模型上的processContent属性:
import { processContent } from 'aurelia-framework';
@processContent(replacePart)
export class MyComponent {
name = "John Doe";
}
function replacePart(compiler, resources, node){
node.innerHTML = `<template replace-part="content">${node.innerHTML}</template>`;
return true;
}
像这样,它更像一个槽,语法更清晰:
<h4>Component 1</h4>
<my-component>
<div>One name</div>
<strong>${name}</strong>
</my-component>
据我所知,这是无法通过插槽实现的。
然而,Aurelia有一个功能叫做replaceable parts
: [Blog post]。这可能更符合您的要求。
演示:https://gist.run/?id=dcffe2afcb1eee1777e9b0d9f7366d28
Edit: HUB docs: [Cheat Sheet/Template Parts]
相关文章:
- 角度指令没有更新模型视图
- “渲染骨干模型视图”返回未定义的结果
- 轮询更新主干模型/视图的请求
- 节点.js中的模型-视图-控制器模式
- 图像数据中的更改未反映在模型视图中
- 自定义 ngModel 指令以支持 jquery 插件中的模型>视图绑定
- 优化显示简单项目列表的模型/视图
- 建议:在JavaScript中难以使用模型视图控制器
- 将三维世界矢量转换为模型视图矩阵
- 在主干模型/视图上处理更复杂的验证逻辑(必填字段等)的最佳方式
- AngularJS在POST http请求上更新模型/视图
- web应用程序模型视图中的Java脚本
- 我的第一个骨干模型/视图.我的思路对吗?
- Knockoutjs的日期时间字段更新不会刷新模型视图
- Backbone.js中的嵌套集合/模型视图管理
- Javascript“this"模型视图演示器设计中的问题
- 模型视图控制器-javascript mvc框架设计实践,用于编辑就地界面
- 模型视图控制器-任何使用javascript mvc的人
- 模型视图控制器-我们是否在使用JavaScriptMVC(MVVM)框架,如Backbone.js、Angular等
- 模型视图控制器-AngularJS中是否可以在经典的javascript函数中使用数据绑定