Merge remote-tracking branch 'origin/next' into ctx-reuse-flag

This commit is contained in:
Leo Horie 2015-02-26 22:54:13 -05:00
commit 1a57bcc403
6 changed files with 142 additions and 101 deletions

View file

@ -607,13 +607,19 @@ var m = (function app(window, undefined) {
window[listener]()
}
//config: m.route
else if (arguments[0].addEventListener) {
else if (arguments[0].addEventListener || arguments[0].attachEvent) {
var element = arguments[0];
var isInitialized = arguments[1];
var context = arguments[2];
element.href = (m.route.mode !== 'pathname' ? $location.pathname : '') + modes[m.route.mode] + this.attrs.href;
element.removeEventListener("click", routeUnobtrusive);
element.addEventListener("click", routeUnobtrusive)
if (element.addEventListener) {
element.removeEventListener("click", routeUnobtrusive);
element.addEventListener("click", routeUnobtrusive)
}
else {
element.detachEvent("onclick", routeUnobtrusive);
element.attachEvent("onclick", routeUnobtrusive)
}
}
//m.route(route, params)
else if (type.call(arguments[0]) === STRING) {
@ -636,7 +642,10 @@ var m = (function app(window, undefined) {
};
redirect(modes[m.route.mode] + currentRoute)
}
else $location[m.route.mode] = currentRoute
else {
$location[m.route.mode] = currentRoute
redirect(modes[m.route.mode] + currentRoute)
}
}
};
m.route.param = function(key) {
@ -689,8 +698,9 @@ var m = (function app(window, undefined) {
if (e.ctrlKey || e.metaKey || e.which === 2) return;
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
var currentTarget = e.currentTarget || this;
var currentTarget = e.currentTarget || e.srcElement;
var args = m.route.mode === "pathname" && currentTarget.search ? parseQueryString(currentTarget.search.slice(1)) : {};
while (currentTarget && currentTarget.nodeName.toUpperCase() != "A") currentTarget = currentTarget.parentNode
m.route(currentTarget[m.route.mode].slice(modes[m.route.mode].length), args)
}
function setScroll() {
@ -735,7 +745,8 @@ var m = (function app(window, undefined) {
var prop = m.prop();
promise.then(prop);
prop.then = function(resolve, reject) {
return propify(promise.then(resolve, reject))
promise = promise.then(resolve, reject).then(prop);
return prop;
};
return prop
}