Skip to content

Instantly share code, notes, and snippets.

@malko
Created February 2, 2015 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malko/2bdee97a8101ea4900d0 to your computer and use it in GitHub Desktop.
Save malko/2bdee97a8101ea4900d0 to your computer and use it in GitHub Desktop.
parseBindingAttr for angular
/** By J.louis */
function parseExprAttr($parse, $scope, $attrs, name) {
var fn = $parse($attrs[name]),
res
;
res = function (locals) {
return fn($scope, locals);
};
res.assign = fn.assign && function (value) {
fn.assign($scope, value);
};
return res;
}
function parseBindingAttr($parse, $scope, $attrs, name, optional) {
var res;
if (!(name in $attrs)) {
if (!optional) {
throw new Error(name + ' attribute must be specified');
}
let value;
res = function () {
return value;
};
res.assign = function (v) {
value = v;
};
return res;
}
res = parseExprAttr($parse, $scope, $attrs, name);
if (!res.assign) {
throw new Error(name + ' model must be assignable');
}
return res;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment