Patch Mithril with a bidi attribute

Enables quick bidirectional bindings. So instead of this:

<input value={prop()} oninput={m.withAttr('value', prop)}/>

... we can do this:

<input bidi={prop}/>
This commit is contained in:
Toby Zerner 2015-09-18 13:06:37 +09:30
parent 6f5433a81c
commit 9544d7dd6a
4 changed files with 12 additions and 3 deletions

View File

@ -10,6 +10,7 @@ gulp({
bowerDir + '/es6-micro-loader/dist/system-polyfill.js',
bowerDir + '/mithril/mithril.js',
bowerDir + '/m.attrs.bidi/bidi.js',
bowerDir + '/jquery/dist/jquery.js',
bowerDir + '/moment/moment.js',

View File

@ -10,6 +10,7 @@
"mithril": "lhorie/mithril.js#next",
"es6-micro-loader": "caridy/es6-micro-loader#v0.2.1",
"fastclick": "~1.0.6",
"autolink": "*"
"autolink": "*",
"m.attrs.bidi": "tobscure/m.attrs.bidi"
}
}

View File

@ -10,6 +10,7 @@ gulp({
bowerDir + '/es6-micro-loader/dist/system-polyfill.js',
bowerDir + '/mithril/mithril.js',
bowerDir + '/m.attrs.bidi/bidi.js',
bowerDir + '/jquery/dist/jquery.js',
bowerDir + '/jquery.hotkeys/jquery.hotkeys.js',
bowerDir + '/color-thief/js/color-thief.js',

View File

@ -8,8 +8,14 @@ export default function patchMithril(global) {
return comp.component(...args);
}
return mo.apply(this, arguments);
}
const node = mo.apply(this, arguments);
if (node.attrs.bidi) {
m.bidi(node, node.attrs.bidi);
}
return node;
};
Object.keys(mo).forEach(key => m[key] = mo[key]);