0

我正在建立一个网站,用户可以在其中以分层方式存储一些数据。

今天我一直在创建构成树中对象的类。

但是,我对 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 新手来说,这些抽象是相当难以承受的。因此,我想要不需要使用框架或第三方库的建议。

4

0 回答 0