问题标签 [extend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
model-view-controller - 如何向某人解释数据结构不应该自己绘制,解释关注点分离?
我有另一个程序员,我试图解释为什么 UI 组件不应该也是数据结构。
例如,假设您从“数据库”获得了一个包含记录集的数据结构,并且您希望在应用程序的 UI 组件中显示该记录集。
根据这位程序员(他将保持无名,他还年轻,我正在教他......),我们应该将数据结构子类化为一个类,该类将在我们的应用程序中绘制 UI 组件!!!!!!
因此根据这个逻辑,记录集应该管理 UI 的绘制。
******总台*****
我知道要求记录集自己绘制是错误的,因为如果您希望在 UI 上的多个类型的组件上呈现相同的数据结构,那么您将手头上一团糟;您需要为从记录集的基类呈现的每个 UI 组件扩展另一个类;
我很清楚 MVC 模式的“简洁性”(我真正的意思是你不会混淆你的数据(模型)与你的 UI(视图)或发生在数据(控制器或多或少......好吧,API 不应该真正处理它......控制器应该尽可能少地调用它,告诉它要渲染哪个视图))但它肯定更干净而不是使用数据结构来呈现 UI 组件!
除了上面的例子,我还有什么其他的建议可以发给他吗?我知道,当您第一次学习 OOP 时,您会经历一个“阶段”,您只想扩展所有内容。
接下来是一个阶段,当您认为设计模式是每一个问题的解决方案......这也不完全正确......谢谢杰夫。
有什么方法可以让我轻轻地将这个孩子推向正确的方向吗?你还有更多的例子可以帮助向他解释我的观点吗?
ruby-on-rails - 导轨。如何在不修改控制器文件的情况下从插件扩展控制器类?
我使用的是 Rails 2.2.2。Rails 手册说,从插件扩展控制器的方法是:
插入:
应用程序/控制器/name_controller.rb
结尾
问题:如果我们知道控制器名称,是否有任何方法可以从插件扩展控制器,而无需修改控制器文件。
django - 在django中扩展User模型后,如何创建ModelForm?
我在 django 中扩展了 User 模型以包含其他几个变量,例如位置和雇主。现在我正在尝试创建一个包含以下字段的表单:
我创建了一个模型:
所以,我的问题是,如何创建一个可以访问所有字段的 ModelForm,无论它们来自 User 模型还是 UserProfile 模型?
希望这是有道理的。如果有任何问题,我会很乐意澄清。
linq - 使用特定于一个实体集合的基于集合的辅助操作扩展 Linq 数据上下文的约定是什么
我可能在这里含糊不清,但我正在寻找一个在 linq 中放置基于集合的辅助操作的好地方,这样我就可以做类似的事情;
它做了类似的事情
因为我可以弄清楚如何扩展Table<Selection>
我能做的最好的事情是在选择的部分类中创建一个静态方法(类似于 Ruby),但我必须像这样传递数据上下文;
这很糟糕,因为我有两个约定来进行基于集合的操作,并且我必须将数据上下文传递给静态类。
我见过其他人推荐将辅助方法打入部分数据上下文中,例如;
但我觉得这使 dc 成为内聚行动的垃圾场。
我肯定错过了一些东西。但愿如此。什么是约定?
python - 如何扩展/修补现有模块或包?
我想扩展名为 OpenERP 的 python 应用程序的一些特定于语言环境的功能。我所需要的只是实现一个第三方 module.function,每次 OpenERP 调用 locale.setlocale() 函数时都会调用它,而不改变 OpenERP 和 locale 模块源代码。
我能想象的唯一方法是在主应用程序包目录中提供一个名为 locale.py 的模块,但这似乎是一种非pythonic的解决方法。
jquery - jQuery.extend 在 Internet Explorer 中不起作用,但在 Firefox 中起作用
我正在尝试以下操作:
我现在应该期望能够执行以下操作:
在 Firefox 3.6 中,这工作得很好。在 Internet Explorer 7 和 8 中,它显示“对象不支持此属性或方法”。
我误解了 $.extend 应该如何工作,还是 IE 表现不佳?
jQuery 版本:1.3.2
谢谢!
php - 扩展单例类
我曾经像这样创建一个单例类的实例:
对于非单例类:
我认为我们不应该区分我们如何创建一个类的实例,无论这是否是单例。如果我查看其他类的看法,我不在乎我们是否需要单例类。所以,我仍然对 php 如何处理单例类感到不舒服。我想而且我一直想写:
只是另一个非单例类,有没有解决这个问题的方法?
jquery - jQuery fn.extend ({bla: function(){}} 与 jQuery.fn.bla
好的,我想我得到 了 jQuery.extend 和 jQuery.fn.extend 之间的区别?
因为通用扩展可以扩展任何对象,并且 fn.extend 用于插件函数,可以使用一些内部 jquery voodoo 直接从 jquery 对象调用。
所以看起来人们会以不同的方式调用它们。如果您使用通用扩展通过添加函数 y 来扩展对象 obj,则该方法将附加到该对象 obj.y(),但如果您使用 fn.extend,那么它们将直接附加到 jquery 对象 $.y()。 ...我是否得到了正确的是或否,如果没有,我的理解有什么错误?
现在我的问题:
我正在阅读的书提倡使用
语法,但在文档中它说
我想如果你也想要 b 那就是
这些在功能和性能方面是否等效,如果不是,有什么区别?
非常感谢。我正在挖掘 jQuery!
php - 从另一个对象向 stdClass 对象添加属性
我希望能够做到以下几点:
如何扩展 $obj 使其包含 $obj2 的属性,例如:
我知道我可以使用一个数组,将所有属性添加到数组中,然后将其转换回对象,但是有没有更优雅的方法,如下所示:
扩展($obj,$obj2);//将$obj2的所有属性添加到$obj
谢谢!
c# - 重新发明标签控件
我需要从头开始重新发明/重新创建标签控件,以添加我自己的魔力。是的,我知道你在想什么(如果你不这么想,你不应该吗?)。
有人可以指出我正确的方向吗?
谢谢你。
重新创建标签的全部目的是我希望完全控制它在屏幕上的绘制方式,以便我也可以为它使用 KeyDown 事件处理程序。例如,用户可以像编辑 TextBox 控件的内容一样编辑标签的内容。
此外,我不能只使用 TextBox 控件,因为它几乎需要甚至更多的工作才能获得我想要的结果。