librelist archives

« back to archive

bamboo中未渲染的变量也会被赋值

bamboo中未渲染的变量也会被赋值

From:
Victor Young
Date:
2011-07-08 @ 09:39
比如前台代码中有需要渲染的变量{{user.name
}},但后台并没有对user进行渲染,实际页面中可能会发现这个变量也被赋值了,可能的原因是后台也有一个user的变量,{{user.name
}}能够对其进行访问。

Re: [bamboo] bam boo中未渲染的变量也会被赋值

From:
道哥
Date:
2011-07-09 @ 06:33
这个我去检查一下代码,估计是开放的全局变量的问题。

--
Nothing is impossible.


在 2011-07-08 17:39:36,"Victor Young" <littlehaker@gmail.com> 写道:

比如前台代码中有需要渲染的变量{{user.name}},但后台并没有对user进行渲染,实际页面中可能会发现这个变量也被赋值了,可能的原因是后台也有一个user的变量,{{user.name}}能够对其进行访问。

Re: [bamboo] bam boo中未渲染的变量也会被赋值

From:
道哥
Date:
2011-07-09 @ 07:30
目前貌似已经解决了这个问题。
问题出在模板渲染里面,会自动添加一些模板中的局部变量到全局环境中去(为了扩大子模板视野)。
 
解决的方法是,不再将这些局部变量压到全局环境中去,而压到函数环境中去。目前基本解决这个问题,但还需后面的各种情况的测试才行。
 
这个问题也发出一个警告,有必要检查一下全局环境中现有的全局变量,看有没有可以不放入全局环境中的,全局变量一般来说,是越少越好咯。

--
Nothing is impossible.


在 2011-07-09 14:33:34,"道哥" <daogangtang@163.com> 写道:

这个我去检查一下代码,估计是开放的全局变量的问题。

--
Nothing is impossible.


在 2011-07-08 17:39:36,"Victor Young" <littlehaker@gmail.com> 写道:

比如前台代码中有需要渲染的变量{{user.name}},但后台并没有对user进行渲染,实际页面中可能会发现这个变量也被赋值了,可能的原因是后台也有一个user的变量,{{user.name}}能够对其进行访问。