1

Dojo 的dijithtml5 标记使用属性名称 data-dojo-props。该值基本上是一个 JSON 字符串,属性名称周围没有引号,也没有最外面的大括号。

它看起来像这样。

data-dojo-props="prop1:'xyz', prop2:true, prop3: { subprop1: 1, subprop2: 'abc'}"

我正在使用 C# 使用 JSON.NET 从 C# 对象中写出它并传入对象指针。我找到了省略属性名称引号的设置,但我想不出一种优雅的方式来删除外部大括号。

现在,我将通过正则表达式运行字符串以删除它们,但想知道是否有人新的更好的方法。

4

1 回答 1

0

我分别序列化每个顶级属性并使其成为全局 javascript 变量。然后我在data-dojo-props. 我承认它不是那么优雅。

我对您上述方法的担忧是,如果 的值subprop2包含引号,您将收到解析器错误。

<script type="text/javascript">
    menuData = {THE SERIALIZED JSON GOES HERE};
</script>
<div data-dojo-type="SomeWidget" data-dojo-props="menuData: menuData"></div>
于 2013-01-18T13:46:02.047 回答