EmberJS:从命名块中的组件调用操作



我使用的是我非常喜欢的命名块,但我无法从其中调用操作。这是我的代码的一个例子,如果不在命名块中,该操作将完美工作

控制器

things = {
run: false,
walk: false,
jog: false,
}
@action
doSomething(thing) {
this.things[thing] = true;
}

模板

<MyComponent>
<:title>Some cool title...</:title>
<:button><MyButton {{on 'click' (fn this.doSomething 'run')}}/></:button>
</MyComponent>  

MyComponent模板

<div>
{{yield to="title"}}
{{yield to="button"}}
</div>

MyButton模板

<button type="button>
Do a thing
</div>

给定此组件调用

<MyButton {{on 'click' (fn this.doSomething 'run')}}/>

MyButton组件必须具有...attributes,以便指定放置属性、修饰符等的位置——;在元素上填充":

<button type="button ...attributes>
Do a thing
</button>

所以为了解决这个问题,我不得不修改模板,比如:

<MyComponent>
<:title>Some cool title...</:title>
<:button><MyButton @clickAction={{fn this.doSomething 'run'}}/></:button>
</MyComponent>  
<button type="button {{on 'click' @clickAction}}>
Do a thing
</div>

相关内容

  • 没有找到相关文章

最新更新