如何defaultCurrency.id在sw-entity-single-select***before***this.repository.save()
中为新实体属性(如www.example.com)设置默认值?
是否可能?或者只能在save()
之后,并在emitted event change()
上侦听新请求?
重写createNewEntity()会将属性值存储在我的数据库中...
...
createNewEntity() {
const entity = this.repository.create(this.context);
entity.name = this.newEntityName;
entity.currencyId = this.defaultCurrency.id;
...
}
...但debug.utils.js
响应错误(罕见,因为创建了实体):[Only Entities with "name" as the only required field are creatable.]
2条答案
按热度按时间r7s23pms1#
从理论上讲,这应该已经工作了,因为你也复制了原始方法的其余部分。你检查过开发人员工具的网络选项卡来查看对
POST /api/{entity}
的附带请求的响应吗?该请求应该失败,并在响应中给出更详细的错误消息。可能有更多的必填字段,而不仅仅是currencyId
。总的来说,你已经有了正确的想法来覆盖组件,不幸的是,在不复制整个
createNewEntity
方法的情况下这样做有点棘手。我快速地创建了一个覆盖,它修饰了存储库的
create
方法,以便在创建后立即修改实体。这引入了一个新的属性
additionalCreationProperties
,然后可以将其与sw-entity-single-select
一起使用,为创建的实体提供默认值。bf1o4zei2#
首先,我
extend()
的sw-entity-single-select
而不是override()
。据我所知,这种配置避免了意外覆盖sw-entity-single-select
在子组件/s。如果我错了,请告诉我。然后
您是否检查了开发者工具的网络选项卡以查看对POST /API/{entity}的附带请求的响应?该请求应该失败,并在响应中提供更详细的错误消息。
没有关于的网络通知
在调试找出错误的来源后(没有深入寻找原因),
createNewEntity()
中的this.$emit('option-select', ...);
在扩展组件中被禁用: