aboutsummaryrefslogtreecommitdiffstats
path: root/src/Widgets.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/Widgets.js')
-rw-r--r--src/Widgets.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Widgets.js b/src/Widgets.js
index 870468d3..d9d72535 100644
--- a/src/Widgets.js
+++ b/src/Widgets.js
@@ -9,7 +9,7 @@ function modelAccessor(scope, element) {
return formatter['format'](scope.$eval(expr));
},
set: function(value) {
- scope.$eval(expr + '=' + toJson(formatter['parse'](value)));
+ scope.$tryEval(expr + '=' + toJson(formatter['parse'](value)), element);
}
};
}
@@ -112,7 +112,7 @@ function inputWidget(events, modelAccessor, viewAccessor, initValue) {
view = viewAccessor(scope, element),
action = element.attr('ng-action') || '',
value = view.get() || copy(initValue);
- if (isDefined(value)) model.set(value);
+ if (isUndefined(model.get()) && isDefined(value)) model.set(value);
this.$eval(element.attr('ng-init')||'');
element.bind(events, function(){
model.set(view.get());
@@ -127,6 +127,7 @@ function inputWidget(events, modelAccessor, viewAccessor, initValue) {
}
function inputWidgetSelector(element){
+ this.directives(true);
return INPUT_TYPE[lowercase(element[0].type)] || noop;
}