diff --git a/src/ng/compile.js b/src/ng/compile.js index 0265beb47250..04ec0b68093e 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -795,7 +795,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var startSymbol = $interpolate.startSymbol(), endSymbol = $interpolate.endSymbol(), - denormalizeTemplate = (startSymbol == '{{' || endSymbol == '}}') + denormalizeTemplate = ($interpolate.strictMode() || startSymbol == '{{' || endSymbol == '}}') ? identity : function denormalizeTemplate(template) { return template.replace(/\{\{/g, startSymbol).replace(/}}/g, endSymbol); diff --git a/src/ng/interpolate.js b/src/ng/interpolate.js index 6b61e56f2a70..a682e4a64b20 100644 --- a/src/ng/interpolate.js +++ b/src/ng/interpolate.js @@ -41,6 +41,7 @@ var $interpolateMinErr = minErr('$interpolate'); function $InterpolateProvider() { var startSymbol = '{{'; var endSymbol = '}}'; + var strictMode = false; /** * @ngdoc method @@ -60,6 +61,25 @@ function $InterpolateProvider() { } }; + /** + * @ngdoc method + * @name $interpolateProvider#strictMode + * @description + * If strictMode is on, $CompileProvider will NOT denormalize Directives templates: + * default symbols '{{' and '}}' will NOT be supported anymore. + * + * @param {boolean=} true to disable denormalizeTemplate() in $CompileProvider + * @returns {boolean|self} true if strict mode is enabled, false otherwise. + */ + this.strictMode = function(value){ + if (value !== undefined) { + strictMode = value; + return this; + } else { + return strictMode; + } + }; + /** * @ngdoc method * @name $interpolateProvider#endSymbol @@ -232,6 +252,21 @@ function $InterpolateProvider() { return endSymbol; }; + + /** + * @ngdoc method + * @name $interpolate#strictMode + * @description + * If strictMode is on, $CompileProvider will NOT denormalize Directives templates: + * default symbols '{{' and '}}' will NOT be supported anymore. + * + * @returns {boolean} true if strict mode is enabled, false otherwise. + */ + $interpolate.strictMode = function() { + return strictMode; + }; + + return $interpolate; }]; }