FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 5297|回复: 6

【已确认】数据模型字段名称为“name”,在子窗体中无法...

[复制链接]
发表于 2017-7-10 12:16:49 | 显示全部楼层 |阅读模式
当数据表中的字段为 “name”  全部小写的时候,在弹出窗体中,点击保存并关闭,报JS错误:
Uncaught TypeError: Cannot read property 'parent' of undefined




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2017-7-13 12:22:14 | 显示全部楼层
消失的键盘 发表于 2017-7-12 17:06
已用APPBOX MVC  1.4.0 试过了  ,直接把Model中的一个字段改成name , 就会出问题

老大,  你就把你手上 ...

多谢指出,这个地方的确有问题。下个版本我会做兼容处理。




不过,我还是建议不要用 name, id, length 等 JavaScript 相关的变量。深层次的原因如下:

  1. F.ui = function(item) { };
复制代码


我们的 F.ui 有两个作用:
1. 用作函数:创建控件,因为可以在JS中通过 F.ui 来创建一个控件:
  1. F.ui({
  2.         type: 'button', renderTo: document.body, text: '按钮', id:'button1',
  3.         listeners: {
  4.                 click: function (event) {
  5.                         F.alert('你点击了按钮');
  6.                 }
  7.         }
  8. });
复制代码


2. 用作对象:保存控件,因此你可以在JS中通过 F.ui 来引用一个控件(比如上面创建的按钮):
  1. F.ui.button1
复制代码


这时问题就来了,因为本身JS函数是有属性的,也就是说 F.ui.name == '', 因为是匿名函数,所有 F.ui.name 为空字符串。

而如果你页面中一个控件的id为name话,这就冲突了,当我们试图通过 F.ui.name = You control instance 时,其实是保存不了的,F.ui.name依然为空字符串。




当然下个版本我们会做优化,把页面上的控件保存到一个内部变量中,你可以通过如下两个方式获取:
1. F('controlid')
2. F.ui.controlid (如果控件ID为name时,这种方式就失效了!!)




发表于 2017-7-10 12:32:36 | 显示全部楼层
换个名称,name可能和属性重名了
 楼主| 发表于 2017-7-10 17:46:06 | 显示全部楼层
不好意思 ,这个问题 提错板块了,麻烦老大移动一下,移到MVC下面去吧。
发表于 2017-7-10 17:48:01 | 显示全部楼层
这个应该不是 name 属性导致的。能否基于空项目简单重现一下,不要连接数据库
 楼主| 发表于 2017-7-12 17:06:41 | 显示全部楼层
本帖最后由 消失的键盘 于 2017-7-12 17:10 编辑
sanshi 发表于 2017-7-10 17:48
这个应该不是 name 属性导致的。能否基于空项目简单重现一下,不要连接数据库 ...

已用APPBOX MVC  1.4.0 试过了  ,直接把Model中的一个字段改成name , 就会出问题

老大,  你就把你手上的appbox mvc  中 Model  下的 Title ,名称改成name ,就可以重现了。
 楼主| 发表于 2017-7-13 18:55:58 | 显示全部楼层
sanshi 发表于 2017-7-13 12:22
多谢指出,这个地方的确有问题。下个版本我会做兼容处理。

感谢老大确认,主要是由实际项目决定。我手上的项目是Dbfirst,通过edmx进行model加载。

幸好现在项目才开始,我可以让数据库改字段名字,或者对这种每个需要处理的对象,新定义一个类来继承后再处理。

所以 ,感谢老大能在下一个版本进行处理,为以后的使用者提供方便。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 01:03 , Processed in 0.048992 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表