我正在研究一个主要使用插件构建为可重用模块的遗留Web应用程序。例如,当开发人员需要使用标准输入框并在其旁边添加一个下拉列表来修改输入框的内容(货币,例如,添加$)时,开发人员会调用$(#input).currencyDropdown(settings)
,从插件中添加HTML(select
和一组选项)并使用标准jQuery检测更改/处理更新,无需淘汰。
现有模式的目标是减少代码复制 - 标记和JS逻辑。我正在尝试将应用程序更多地推向淘汰赛/ MVVM,但我不确定这是否会排除插件的使用。我觉得我应该以某种方式用数据绑定模板替换目标input
。这里的挑战是,在所有地方,我所拥有的只是input
,除非是通过插件,否则我无法更新DOM。
我见过用于逻辑/样式的自定义绑定处理程序,但是在附加实际的HTML标记方面,自定义绑定处理程序是正确的方法吗?模板应该在哪里发挥作用,如果有的话,在应用程序的不同区域中的多个视图模型中重用此模式时?
作为一个例子,假设我有一个不是数据绑定的输入:
<input>
目标是从插件中将其更改为数据绑定代码段:
<input data-bind='value: amount'><select data-bind='stuff here'>
其中amount
是一些计算可观察的,取决于所选择的内容。作为奖励,根据所选内容,可能需要显示弹出窗口。
在上述约束条件下,针对某个应用程序进行淘汰的推荐策略是什么?
答案 0 :(得分:0)
是的,自定义绑定处理程序是可行的方法。