【问题标题】:Dojo widget inline editingDojo 小部件内联编辑
【发布时间】:2011-06-24 11:10:02
【问题描述】:

我创建了一个用于显示表单数据的 dojo 小部件。我想在这个小部件中启用内联编辑。首先,我开始尝试用 JavaScript 将 html 编写为字符串。我不想这样做。 dojo 提供了一个接口 dojo.cache() 来将 html 文件加载为模板。使用此方法加载表单视图的模板数据。

用于表单编辑。将发送一个 ajax 调用,我将收到字段类型数据。基于此,我必须将 html 解析为内联编辑器。

我的问题是,如何使用 dojo.cache() 并根据输入类型获取 html。模板可能包含像

这样的数据
<input type="text" />
or
<select></select>
or
<textarea></textarea>
or
<div class="autocomplete"></div>

或者更多...我可以在一个文件中定义所有这些模板并使用 dojo.cache() 获取文件吗?在这种情况下,我被困在如何选择必填字段上。

【问题讨论】:

    标签: javascript forms dojo widget inline-editing


    【解决方案1】:

    我不确定您将通过 dojo.cache 引入的模板有多复杂,但您是否考虑过使用 dojo.create() 作为替代方案?这也将允许以编程方式创建 DOM 元素。

    关于您的解决方案,起初我对您尝试做的事情感到困惑,但我想我现在明白了。在您显示数据的页面中,您希望用户能够选择一些数据进行编辑,并且当他们执行该操作时,适当的可编辑容器将显示在其位置以便他们更改数据?

    如果是这种情况,我肯定 dojo.create() 比从 dojo.cache 中提取的 HTML 模板更好。

    dojo.create 可以很容易地与从您的服务 XHR 调用返回的变量一起使用,以便创建的元素类型将取决于您从服务器获得的响应。

    var editEle = dojo.create(data.elementType);(假设 data 是您的响应变量的名称,elementType 是包含需要创建的元素类型的属性。

    您还可以将对象字面量传递给 dojo.create 的第二个参数以指定节点上的参数: dojo.create('input', {type: 'text'});

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多