Skip to content

Instantly share code, notes, and snippets.

@Alexander-Taran
Last active March 12, 2018 21:49
Show Gist options
  • Save Alexander-Taran/e9e9c5b3a0c2f418fcead094c8158529 to your computer and use it in GitHub Desktop.
Save Alexander-Taran/e9e9c5b3a0c2f418fcead094c8158529 to your computer and use it in GitHub Desktop.
Promise edit pattern
<template>
<template if.bind="editMode">
<input value.bind="editValue">
<button click.delegate="save()">save</button>
<button click.delegate="cancel()">cancel</button>
</template>
<template else>
<h1>${message} <button click.delegate="edit()">edit</button></h1>
</template>
</template>
export class App {
message = 'Hello World!';
editValue = ''
edit(){
new Promise((ok,cancel)=>{
this.editValue = this.message
this.save=ok
this.cancel=cancel
this.editMode = true
})
.then(()=>{
this.message=this.editValue
this.editValue=''
this.editMode=false
})
.catch(()=>{
this.editValue=''
this.editMode=false
})
}
}
<!doctype html>
<html>
<head>
<title>Aurelia</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body aurelia-app>
<h1>Loading...</h1>
<script src="https://jdanyow.github.io/rjs-bundle/node_modules/requirejs/require.js"></script>
<script src="https://jdanyow.github.io/rjs-bundle/config.js"></script>
<script src="https://jdanyow.github.io/rjs-bundle/bundles/aurelia.js"></script>
<script src="https://jdanyow.github.io/rjs-bundle/bundles/babel.js"></script>
<script>
require(['aurelia-bootstrapper']);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment