将 bs-form 中的 bs-buttons 连接到组件操作 (ember-bootstrap)
Connecting bs-buttons in a bs-form to component actions (ember-bootstrap)
将 bs-form
中的 bs-button
连接到组件操作的正确方法是什么?
关于我想做的和已经尝试过的事情的一些背景:
我正在将 Ember 从 2.10 升级到 2.14,并将 ember-bootstrap 从 0.11.3 升级到 1.0。我遇到了 ember-bootstrap.
的问题
我在表单中有两个按钮 (bs-form
):"Save" 和 "Cancel"。
该表单托管在 Ember 组件中。在旧版本中我只有两个 bs-button
元素,像这样:
{{bs-button defaultText="Save" type="primary" action="save"}}
{{bs-button defaultText="Cancel" type="primary" action="cancel"}}
在组件class中,我定义了匹配动作:
actions: {
save() { /* do saving stuff */ }
cancel() { /* do cancelling stuff */ }
}
现在这不再有效:bs-button
现在使用 onClick
而不是 action
,但仅添加 onClick="save"
无效(我得到 TypeError: action is not a function
);此外,onClick=(action "save")
不起作用 (Assertion Failed: An action named 'save' was not found in (generated edit-organization controller)
)。
然而,当不使用 bs-button
而是将普通的 button
元素与 action
助手一起使用时,它工作得很好:
<button class="btn btn-default" {{action 'cancel'}}>Cancel</button>
<button class="btn btn-primary" {{action 'save'}}>Save</button>
我怀疑问题与使用 组件 托管表单有关;毕竟,ember-bootstrap 文档声明操作用于...
send an action to your controller.
我仍然想使用一个组件(毕竟,控制器正在消失,对吧?)。感谢您对此提供任何帮助。
您可以创建闭包动作并将其传递给 bs-button 组件。
{{bs-button defaultText="Save" type="primary" save=(action "save")}}
{{bs-button defaultText="Cancel" type="primary" cancel=(action "cancel")}}
组件内部,
<button class="btn btn-default" {{action cancel}}>Cancel</button>
<button class="btn btn-primary" {{action save}}>Save</button>
将 bs-form
中的 bs-button
连接到组件操作的正确方法是什么?
关于我想做的和已经尝试过的事情的一些背景:
我正在将 Ember 从 2.10 升级到 2.14,并将 ember-bootstrap 从 0.11.3 升级到 1.0。我遇到了 ember-bootstrap.
的问题我在表单中有两个按钮 (bs-form
):"Save" 和 "Cancel"。
该表单托管在 Ember 组件中。在旧版本中我只有两个 bs-button
元素,像这样:
{{bs-button defaultText="Save" type="primary" action="save"}}
{{bs-button defaultText="Cancel" type="primary" action="cancel"}}
在组件class中,我定义了匹配动作:
actions: {
save() { /* do saving stuff */ }
cancel() { /* do cancelling stuff */ }
}
现在这不再有效:bs-button
现在使用 onClick
而不是 action
,但仅添加 onClick="save"
无效(我得到 TypeError: action is not a function
);此外,onClick=(action "save")
不起作用 (Assertion Failed: An action named 'save' was not found in (generated edit-organization controller)
)。
然而,当不使用 bs-button
而是将普通的 button
元素与 action
助手一起使用时,它工作得很好:
<button class="btn btn-default" {{action 'cancel'}}>Cancel</button>
<button class="btn btn-primary" {{action 'save'}}>Save</button>
我怀疑问题与使用 组件 托管表单有关;毕竟,ember-bootstrap 文档声明操作用于...
send an action to your controller.
我仍然想使用一个组件(毕竟,控制器正在消失,对吧?)。感谢您对此提供任何帮助。
您可以创建闭包动作并将其传递给 bs-button 组件。
{{bs-button defaultText="Save" type="primary" save=(action "save")}}
{{bs-button defaultText="Cancel" type="primary" cancel=(action "cancel")}}
组件内部,
<button class="btn btn-default" {{action cancel}}>Cancel</button>
<button class="btn btn-primary" {{action save}}>Save</button>