From fb1078d9d0fce1654a19a5ac3f63f7660acb18f8 Mon Sep 17 00:00:00 2001 From: Fabian Off Date: Wed, 27 Nov 2013 23:25:03 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Add=20breaking=20tests=20for=20the=20situat?= =?UTF-8?q?ion=20can-value=20is=20used=20on=20a=20key=20that=E2=80=99s=20n?= =?UTF-8?q?ot=20yet=20inside=20the=20map.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/bindings/bindings_test.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/view/bindings/bindings_test.js b/view/bindings/bindings_test.js index 4ce031df9c4..29e872455d7 100644 --- a/view/bindings/bindings_test.js +++ b/view/bindings/bindings_test.js @@ -43,7 +43,7 @@ var template = can.view.mustache("") - var map = new can.Map({age: "30"}) + var map = new can.Map() var frag = template( map ) @@ -52,7 +52,11 @@ ta.appendChild(frag); var input = ta.getElementsByTagName("input")[0]; - equal(input.value, "30", "input value set correctly") + equal(input.value, "", "input value set correctly if key does not exist in map"); + + map.attr("age", "30"); + + equal(input.value, "30", "input value set correctly"); map.attr("age","31"); From fdd650c6df977f06bad96869db5a4f9a3da0de91 Mon Sep 17 00:00:00 2001 From: Fabian Off Date: Wed, 27 Nov 2013 23:25:48 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Fix=20can-value=20showing=20=E2=80=98undefi?= =?UTF-8?q?ned=E2=80=99=20instead=20of=20empty=20text-field=20when=20value?= =?UTF-8?q?=20bound=20is=20undefined.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/bindings/bindings.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/view/bindings/bindings.js b/view/bindings/bindings.js index bf464ae758b..bb3ee26ea5c 100644 --- a/view/bindings/bindings.js +++ b/view/bindings/bindings.js @@ -162,7 +162,8 @@ steal("can/util","can/view/mustache", "can/control", function(can){ }, "{value} change": "set", set: function(){ - this.element[0].value = this.options.value() + var val = this.options.value(); + this.element[0].value = (typeof val === 'undefined' ? '' : val); }, "change": function(){ this.options.value(this.element[0].value)