Ext.view.View使用TPL问题
代码如下:
{
/// <reference path="../../ext/ext-all.js" />
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ["name", "title"],
hasMany: [{ model: 'User', name: 'childrens' }]
});
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url: 'user.txt',
reader: {
type: 'json',
root: 'users'
}
},
autoLoad: true
});
Ext.create('Ext.view.View', {
width:200,
store: myStore,
tpl: ['<div>',
'<tpl for=".">',
'<div>',
'<div class="nrm_menu_banner">{name}</div>',
'<tpl for="childrens">',
'<div class="nrm_menu_content">{name}</div>',
'</tpl>',
'</div>',
'</tpl>',
'</div>'
],
itemSelector: 'div.nrm_menu_content',
overItemCls: 'hover',
trackOver: true,
renderTo: Ext.getBody()
});
}
现在遇到的问题是,如果itemSelector设置为 'div.nrm_menu_content',则报
Uncaught TypeError: Cannot read property 'internalId' of undefined错误,why???
[解决办法]
itemSelector : StringREQUIRED4
This is a required setting. A simple CSS selector (e.g. div.some-class or span:first-child) that will be used to determine what nodes this DataView will be working with. The itemSelector is used to map DOM nodes to records. As such, there should only be one root level element that matches the selector for each record.