我正在建立一个网站,用户可以在其中以分层方式存储一些数据。
今天我一直在创建构成树中对象的类。
但是,我对 JavaScript/CoffeeScript 和客户端脚本相当陌生,我不确定如何正确设计。
以这个代表叶节点的类为例:
class window.LeafNode
constructor: (@title, @desc, @content) ->
doesMatch: (query) ->
(@title.toLowerCase().indexOf query) > -1
html: ->
element = document.createElement('li')
element.innerHTML = @title
element
在这里,我让这个班级负责几件事。一个是创建它自己的状态,这似乎是合理的。但是,它也负责搜索自己并确定匹配,因此树结构是可搜索的。最后,它包含自身的 html 表示。
虽然我不确定搜索方法,但我反对在模型中使用 html。我不认为它属于那里。
你能提供一些关于解决这个问题的方法的观点吗?
请记住,树应该是可搜索的、可序列化的,并且用户应该能够添加、删除和移动节点。
注意:我已经尝试过 AngularJS,但决定不使用它,因为它包含大量的抽象,对于像我这样的 JavaScript 新手来说,这些抽象是相当难以承受的。因此,我想要不需要使用框架或第三方库的建议。