Javascript 从显示在repeater循环中的子自定义元素获取正确的上下文。奥雷利亚
我有一个父模板,它有一个用于子自定义元素的转发器Javascript 从显示在repeater循环中的子自定义元素获取正确的上下文。奥雷利亚,javascript,repeater,parent,aurelia,custom-element,Javascript,Repeater,Parent,Aurelia,Custom Element,我有一个父模板,它有一个用于子自定义元素的转发器 editUser回调位于父VM中,我需要从我的子自定义元素调用它 这是我的孩子自定义组件 /*user.js*/ 从“aurelia框架”导入{customElement,bindable}; @customElement('git-hub-user-card') 导出类GitubUser{ @可绑定编辑用户; @可绑定用户={}; 绑定(parentCtx){ 这。$parentCtx=parentCtx; } } 这是子模板 ${us
editUser
回调位于父VM中,我需要从我的子自定义元素调用它
这是我的孩子自定义组件
/*user.js*/
从“aurelia框架”导入{customElement,bindable};
@customElement('git-hub-user-card')
导出类GitubUser{
@可绑定编辑用户;
@可绑定用户={};
绑定(parentCtx){
这。$parentCtx=parentCtx;
}
}
这是子模板
${user.login}
所以,我通过绑定在子组件中传递了回调函数
我的第一个问题:可以吗?或者有更简洁的方法从子组件调用回调
然后,我尝试在子VM中获取父VM上下文:
bind(parentCtx){
这。$parentCtx=parentCtx;
}
并尝试将回调调用绑定到此上下文:
编辑名称
但是在这种情况下,
$parentCtx
是不正确的,因为父模板中的repeat.for
$parentCtx
等于我的GithubUser。如何在父VM中为editUser获取正确的上下文?是否应使用边界对其进行路径设置?使用users.html
模板中的call
binding命令。当调用该方法时,它将保留正确的上下文/此上下文。下面是它的样子:
user.js
从'aurelia framework'导入{customElement,bindable};
@customElement('git-hub-user-card')
导出类GitubUser{
@可绑定编辑用户;
@可绑定用户;
}
user.html
${user.login}
users.html
将editUser方法移动到VM中以获取视图是否有意义?@weagle08不,没有意义。我想在弹出窗口中更改用户信息。所以我只需要一个弹出窗口,可以切换内容视图。如果我在子组件中移动这个弹出窗口,我会得到这个编辑窗口的很多实例。所以我想我应该把这个逻辑放在父组件中。非常感谢!它对我有用。我应该更仔细地阅读码头。