Revert "Pass vnode as second argument"

This commit is contained in:
Isiah Meadows 2017-04-28 16:40:13 -04:00 committed by GitHub
parent 0587139252
commit b24c37c42d
3 changed files with 2 additions and 37 deletions

View file

@ -181,7 +181,7 @@ Mithril does not attempt to add units to number values.
### Events
Mithril supports event handler binding for all DOM events, using `addEventListener` under the hood to add events in case they don't have a corresponding `on${event}` property, such as the native `touchstart` or third-party events like Bootstrap's `show.bs.modal`.
Mithril supports event handler binding for all DOM events, including events whose specs do not define an `on${event}` property, such as `touchstart`
```javascript
function doSomething(e) {
@ -191,38 +191,6 @@ function doSomething(e) {
m("div", {onclick: doSomething})
```
You may access the element itself through `this` like so, which is useful for things like form validation:
```javascript
function submit(e) {
this.validate()
m.request("api/form-endpoint", {
method: "POST",
data: new FormData(this),
background: true
})
.then(function () {
m.route.set("/form-submit")
})
}
m("form", {onsubmit: submit}, [
// ...
])
```
It also provides access to the event's own literal vnode via `vnode`, so you may easily access its `attrs` and `children` through it, from an external function.
```javascript
function handleClick(e, vnode) {
vnode.attrs.context.validateValue(this.value)
}
m("div", [
m("input", {type: "text", context: this, onclick: handleClick})
])
```
---
### Properties

View file

@ -558,7 +558,7 @@ module.exports = function($window) {
function updateEvent(vnode, key, value) {
var element = vnode.dom
var callback = typeof onevent !== "function" ? value : function(e) {
var result = value.call(element, e, vnode)
var result = value.call(element, e)
onevent.call(element, e)
return result
}

View file

@ -28,7 +28,6 @@ o.spec("event", function() {
o(spy.this).equals(div.dom)
o(spy.args[0].type).equals("click")
o(spy.args[0].target).equals(div.dom)
o(spy.args[1]).equals(div)
o(onevent.callCount).equals(1)
o(onevent.this).equals(div.dom)
o(onevent.args[0].type).equals("click")
@ -65,7 +64,6 @@ o.spec("event", function() {
o(spy.this).equals(div.dom)
o(spy.args[0].type).equals("click")
o(spy.args[0].target).equals(div.dom)
o(spy.args[1]).equals(div)
o(onevent.callCount).equals(1)
o(onevent.this).equals(div.dom)
o(onevent.args[0].type).equals("click")
@ -87,7 +85,6 @@ o.spec("event", function() {
o(spy.this).equals(div.dom)
o(spy.args[0].type).equals("transitionend")
o(spy.args[0].target).equals(div.dom)
o(spy.args[1]).equals(div)
o(onevent.callCount).equals(1)
o(onevent.this).equals(div.dom)
o(onevent.args[0].type).equals("transitionend")