Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@geleto
Last active October 27, 2016 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save geleto/e49828b236d979450ce54f0006d0fa0a to your computer and use it in GitHub Desktop.
Save geleto/e49828b236d979450ce54f0006d0fa0a to your computer and use it in GitHub Desktop.
Aurelia - change to a bound repeat input element is applied to the VM a second time after the element has been deleted.
<template>
<div repeat.for="i of messages.length">
<input type="text" value.bind="$parent.messages[i]" input.delegate="onMessageChanged()">
</div>
</template>
export class App {
messages = ['Alpha','Bravo','Charlie','Delta','Echo'];
onMessageChanged(){
for( var i=0; i<this.messages.length;i++ ){
if(this.messages[i]==''){
this.messages.splice(i,1);
console.log( 'deleted element #'+i+', messages:'+this.messages );
break;
}
}
window.setTimeout(()=>{
console.log( 'and a bit later, messages:'+this.messages );
},100);
}
}
<!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