如果 JSON 属性 名称包含句号,则模板失败
Template fails if JSON property names contains full stop
我正在使用 jsRender 呈现模板,但是我的 JSON 数据 属性 名称包含句号。
在线举一个简单的例子,效果很好:
http://jsfiddle.net/mythical/4rtTy/
在 属性 名称中使用句号,它不再有效:
我需要使用什么语法/技术来允许 jsRender 获取这些属性?
var data = {
people: [{
"full.name": 'Dan Wahlin',
shirtColor: 'white'
}]
};
{{for people}}
<li>{{:full.name}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
你有这个 JSON:
var data = {
people: [{
"full.name": 'Dan Wahlin',
shirtColor: 'white'
}]
};
还有这个模板
{{for people}}
<li>{{:full.name}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
这是不正确的,因为 jsRender 尝试在此 json 结构上获取值:
var data = {
people: [
{
"full": { "name":'Dan Wahlin'},
shirtColor: 'white'},
{
"full": { "name":'John Papa' },
shirtColor: 'black'},
{
"full": { name: 'Scott Guthrie'},
shirtColor: 'red'}
]
};
参考:https://www.jsviews.com/#assigntag
示例:{{:data.paths}}
就像在 Javascript 中一样,您可以编写 data.key
或 data['key']
,您实际上可以让 JsRender 访问 属性 名称,例如 "full.name"
,方法是使用语法 #data['someKey']
- 因为 #data
是当前数据项。
所以在你的情况下你可以这样写:
{{for people}}
<li>{{:#data['full.name']}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
这是您更新后的 fiddle:http://jsfiddle.net/BorisMoore/zLbw8rLL/1/
我正在使用 jsRender 呈现模板,但是我的 JSON 数据 属性 名称包含句号。
在线举一个简单的例子,效果很好:
http://jsfiddle.net/mythical/4rtTy/
在 属性 名称中使用句号,它不再有效:
我需要使用什么语法/技术来允许 jsRender 获取这些属性?
var data = {
people: [{
"full.name": 'Dan Wahlin',
shirtColor: 'white'
}]
};
{{for people}}
<li>{{:full.name}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
你有这个 JSON:
var data = {
people: [{
"full.name": 'Dan Wahlin',
shirtColor: 'white'
}]
};
还有这个模板
{{for people}}
<li>{{:full.name}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
这是不正确的,因为 jsRender 尝试在此 json 结构上获取值:
var data = {
people: [
{
"full": { "name":'Dan Wahlin'},
shirtColor: 'white'},
{
"full": { "name":'John Papa' },
shirtColor: 'black'},
{
"full": { name: 'Scott Guthrie'},
shirtColor: 'red'}
]
};
参考:https://www.jsviews.com/#assigntag 示例:{{:data.paths}}
就像在 Javascript 中一样,您可以编写 data.key
或 data['key']
,您实际上可以让 JsRender 访问 属性 名称,例如 "full.name"
,方法是使用语法 #data['someKey']
- 因为 #data
是当前数据项。
所以在你的情况下你可以这样写:
{{for people}}
<li>{{:#data['full.name']}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
这是您更新后的 fiddle:http://jsfiddle.net/BorisMoore/zLbw8rLL/1/