我在应用程序中遇到了一个问题,因为我将EmberJS从1.6.1升级到1.8.1.它只发生在Chrome下.问题是,我的模板在某种程度上被渲染,每个html节点周围都有很多额外的空间.所以说...而不是:
<div>
[tab]<span>Hello</span>
</div>
Run Code Online (Sandbox Code Playgroud)
我得到这样的渲染:
<div>[ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ]<span>Hello</span>[ ][ ][ ][ ]
</div>[ ][ ][ ][ ]
Run Code Online (Sandbox Code Playgroud)
或许你会在这里看到它:

这显然打破了造型.有趣的是,当我从这种奇怪的构造中移除至少一个空间时,神奇的是给定部分的样式又回来了(即使其他空间仍在那里).
提一下.我正在使用ember-grunt-templates 0.4.21进行编译.我知道它有新版本(0.4.23我认为......)我也尝试更新它,但它没有帮助.
我知道这里有一个提及:http://emberjs.com/blog/2014/11/04/ember-1-8-1-released.html关于Chrome中的空白问题,但它说人们反其道而行之由于Chrome中的某些错误导致丢失空格的影响.;>我的Chrome实例正在消耗并收集所有其他人的空白或什么?:-)
任何人遇到类似的问题(像我的,不像Ember发行说明中提到的那个)?谁知道如何摆脱这个?
更新1:
我试图更新到:
这解决了很少出现的空白问题,但有些仍然存在.也就是说,在渲染文本前面会产生一个空格:
<span class="someClass">
{{#if condition}}{{someProperty}}{{else}}{{t 'translationKey'}}{{/if}}
</span>
Run Code Online (Sandbox Code Playgroud)
那不是:
<span class="someClass">{{#if condition}}{{someProperty}}{{else}}{{t 'translationKey'}}{{/if}}</span>
Run Code Online (Sandbox Code Playgroud)
: - |
我觉得我可能会为一个简单的问题做很多事情.
如果index = 0,我如何index在模板中增加.
理想情况下,我想做这样的事情.
{{index+1}}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,解决方案是编写如下的辅助函数.
import Ember from 'ember';
export function plusOne(params) {
return parseInt(params) + 1;
}
export default Ember.HTMLBars.makeBoundHelper(plusOne);
Run Code Online (Sandbox Code Playgroud)
然后在模板中,您将执行以下操作.
{{plus-one index}}
Run Code Online (Sandbox Code Playgroud)
所以希望,我错了,有一个更简单的方法来做到这一点.并且可能是在模板中进行"简单"处理的更简单方法.不确定是否存在异议,因为模板中可能存在"太多"逻辑.
任何有关这方面的指导将不胜感激.
谢谢!
helper increment handlebars.js ember.js grunt-ember-templates