我正在尝试渲染动态创建的mooml模板,并在调用render时得到null。
这是我的代码:
var myTpl = Mooml.Template('tpl', function() {
div({class: 'new-container'},
div({class: 'new-title'},
div({class: 'new-text'},
'Put your title here:'
),
div({class: 'new-input'},
input({type: 'text', name: 'title', class: 'required', title: 'Title'})
)
),
div({class: 'new-content'},
form({method: 'post', action: '#'},
textarea({name: 'content', style: 'width: 100%'})
)
)
);
});
// el is null after executing render
var el = myTpl.render();
我查看了firebug中的一些变量,myTpl var不为null,render方法也不为null。我不太了解mooml在后台执行的操作,但是考虑到以下示例here,我认为我应该执行的操作:
var template = new Mooml.Template('mytemplate', function() {
div('Template on the fly');
});
template.render(); // returns <div>Template on the fly</div>
与往常一样,我们非常感谢您的帮助。
最佳答案
嘿,我花了很多时间看这个,主要是因为您的嵌套标记写得太乱了,并且寻找不匹配/语法错误,这使我忽略了您无法正确初始化该类的事实。
var foo = new Mooml.Template('tpl', function() {
div({"class": 'new-container'},
div({"class": 'new-title'},
div({"class": 'new-text'}, 'Put your title here:'),
div({"class": 'new-input'},
input({
type: 'text',
name: 'title',
"class": 'required',
title: 'Title'
})
)
),
div({"class": 'new-content'},
form({method: 'post', action: '#'},
textarea({
name: 'content',
style: 'width: 100%'
})
) // form
) // new-content
); // end div function
}).render();
foo.inject(document.body);
这可行。 http://jsfiddle.net/YKTyL/2/
注意
new Mooml.Template
,而不是传递对类本身的引用。它从正确的例子中盯着我们看...此外,我更改了您说类的实例:类是IE中的保留关键字,需要在“”中引用