EmberJS:从命名块中的组件调用操作
EmberJS: Call action from component in named block
我正在使用我非常喜欢的命名块,但我无法从其中调用操作。这是我的代码示例,如果不在命名块中,该操作将完美运行
控制器
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>
我的组件模板
<div>
{{yield to="title"}}
{{yield to="button"}}
</div>
MyButton 模板
<button type="button>
Do a thing
</div>
所以为了解决这个问题,我不得不像这样修改模板:
<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>
鉴于此组件调用
<MyButton {{on 'click' (fn this.doSomething 'run')}}/>
MyButton 组件必须 ...attributes
以指定放置属性、修饰符等的位置——“元素上的内容”:
<button type="button ...attributes>
Do a thing
</button>
我正在使用我非常喜欢的命名块,但我无法从其中调用操作。这是我的代码示例,如果不在命名块中,该操作将完美运行
控制器
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>
我的组件模板
<div>
{{yield to="title"}}
{{yield to="button"}}
</div>
MyButton 模板
<button type="button>
Do a thing
</div>
所以为了解决这个问题,我不得不像这样修改模板:
<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>
鉴于此组件调用
<MyButton {{on 'click' (fn this.doSomething 'run')}}/>
MyButton 组件必须 ...attributes
以指定放置属性、修饰符等的位置——“元素上的内容”:
<button type="button ...attributes>
Do a thing
</button>