您好,这边评估了一下您目前的使用场景:
您之所以想要在SpreadJS中隐藏Hover提示,是因为表名在服务器端会动态变化,这样一来要么把表名设置为后端的表id,要么隐藏Hover提示,但是表id的读取很困难,所以您想要通过隐藏Hover提升来实现这个需求。
但是实际上,即使您隐藏了Hover提示,其他在设计器中显示表名称的UI又该如何显示呢?全部设置为不可见?基于此,我们认为这不是一个合理的设计。
因此,我们建议您在前端不要尝试修改表名,而是使用DataManager处理定义的表到后端表的映射。
如:
- var myTable = dataManager.addTable("学生表", {
- remote: {
- read: {
- url: ()=> fetch("serverside_table_id")
- }
- },
- schema: {
- columns: {
- OrderId: {dataName: "Id"},
- OrderDate: {dataType: "date"},
- RequiredDate: {dataType: "date"},
- ShippedDate: {dataType: "date"},
- ShipVia: {dataMap: {1: "Speedy Express", 2: "United Package", 3: "Federal Shipping"}}
- }
- }
- });
复制代码
这样一来,前端的表名稳定下来,也不会破坏表之间的公式和关系等信息。
——————————————
从软件设计的层面来说,前端的设计和后端的设计中间还需要中间层,而不是直接连接,否则后端一旦发生变动,前端就需要调整和修改。中间层存在的意义就是抹除前后端的差异,尽可能少的改变已经设计好的代码,从而避免错误的出现。 |