提交 f70093d1 编写于 作者: NoSubject's avatar NoSubject

通过{{each () }}方式,在事件方法中绑定子数据

上级 dc08c237
......@@ -697,11 +697,11 @@
}else{
dom.insertAdjacentHTML(op.position, data);
}
var els = dom.querySelectorAll("[data-o2-element]");
var els = dom.querySelectorAll("[data-o2-element],[data-o2-events]");
for (var i=0; i<els.length; i++){
var el = els.item(i);
var name = el.getAttribute("data-o2-element").toString();
if (name) _bindToModule(op.module, el, name);
var name = el.getAttribute("data-o2-element");
if (name) _bindToModule(op.module, el, name.toString());
if (el.hasAttribute("data-o2-events")){
var events = el.getAttribute("data-o2-events").toString();
if (events) _bindToEvents(op.module, el, events);
......@@ -721,12 +721,15 @@
};
var _bindToEvents = function(m, node, events){
var p = node.getParent("div[data-o2-$binddatadd]");
var data = (p) ? _parseDataCache[p.dataset["o2-$binddataid"]]: null;
var eventList = events.split(/\s*;\s*/);
eventList.forEach(function(ev){
var evs = ev.split(/\s*:\s*/);
if (evs.length>1){
node.addEventListener(evs[0], function(e){
if (m[evs[1]]) m[evs[1]].apply(m, [e]);
if (m[evs[1]]) m[evs[1]].apply(m, [e,data]);
}, false);
}
});
......@@ -846,8 +849,15 @@
return {"codeIndex": v.length-1, "lastIndex": v.length-1};
}
var _parseHtml = function(str, json){
var _parseDataCache = {};
var _parseHtml = function(str, json, i){
var v = str;
if (i){
var r = (Math.random()*1000000).toInt().toString();
while (_parseDataCache[r]) r = (Math.random()*1000000).toInt().toString();
_parseDataCache[r] = json;
v = (i) ? "<div data-o2-$binddataid='"+r+"'>"+str+"</div>" : str;
}
var rex = /(\{\{\s*)[\s\S]*?(\s*\}\})/gmi;
var match;
......@@ -887,7 +897,7 @@
if (eachValue && _typeOf(eachValue)==="array"){
for (var i=0; i<eachValue.length; i++){
eachValue[i]._ = json;
eachResult += _parseHtml(parseEachStr, eachValue[i]);
eachResult += _parseHtml(parseEachStr, eachValue[i], i);
}
var eLeft = v.substring(0, match.index);
var eRight = v.substring(rex.lastIndex+endEachIndex.lastIndex, v.length);
......
......@@ -55,7 +55,7 @@ MWF.xApplication.Empty.Main = new Class({
},
loadTask: function(){
alert("loadTask")
alert("loadTask");
},
tabover: function(){
//alert("tabover");
......@@ -65,8 +65,7 @@ MWF.xApplication.Empty.Main = new Class({
//alert("tabout")
this.myNode.removeClass("mainColor_bg");
},
clickNode: function(e){
debugger;
alert(e.sourceTarget);
clickNode: function(e, data){
alert(data.title);
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册