Friday, 23 August 2013

Angularjs use custom interpolation symbols for scope

Angularjs use custom interpolation symbols for scope

I currently have an underscore.js template that I would also like to use
with angular and still be able to use with underscore. I was wondering if
it's possible to change the interpolation start and end symbols for a
particular scope using a directive, like this:
angular.directive('underscoreTemplate', function ($parse, $compile,
$interpolateProvider, $interpolate) {
return {
restrict: "E",
replace: false,
link: function (scope, element, attrs) {
$interpolateProvider.startSymbol("<%=").endSymbol("%>");
var parsedExp = $interpolate(element.html());
// Then replace element contents with interpolated contents
}
}
})
But this spits out the error
Error: Unknown provider: $interpolateProviderProvider <-
$interpolateProvider <- underscoreTemplateDirective
Is $interpolateProvider only available for module configuration? Would a
better solution be to simply using string replace to change <%= to {{ and
%> to }}?
Also, I noticed that element.html() escapes the < in <%= and > in %>. Is
there a way to prevent this automatic escaping?

No comments:

Post a Comment