我正在构建一个启动计时器,执行一些随机操作,然后关闭计时器并报告执行花费多长时间的testscript。这是我走到这一步:Sencha Touch 2 - 执行顺序/优先级
Ext.define('project.view.test', {
extend: 'Ext.Panel',
xtype: 'test',
config: {
styleHtmlContent: true,
scrollabe: 'vertical',
title: 'test',
tpl: '<p id="time"></p>'
},
initialize: function() {
this.measureTime();
},
measureTime: function() {
var startTime=new Date();
a = 2;
for(i=0; i<1000; i++) {
a = a*a*a*i;
}
var b=Math.floor((new Date()-startTime)/100)/10;
document.getElementById('time').innerHTML = b;
}
});
这里的问题是,我得到的错误:
Uncaught TypeError: Cannot set property 'innerHTML' of null
在这里,我的猜测是,之后的JS代码是HTML对标签渲染执行。真的吗?我以为脚本是通过操作执行的,而且html代码在js代码之上,这让我很困惑。
我试图把javascript放在html/tpl标签(在配置中)。它消除了错误,但没有任何内容被写出来。为什么?什么命令都执行,我该如何解决这个问题?
关于'tpl'属性的文档说“**注意** [data](http://docs.sencha.com/touch/2-1/#!/api/Ext.Component-cfg-data )配置必须设置为在组件中显示的任何内容当使用这种配置时。“因此你可能会得到意想不到的结果。 – jprofitt