angular-interpolate
v1.0.6
Published
Recursively interpolate variables in strings.
Downloads
3
Maintainers
Readme
This Angular module is a light-weight interpolator that replaces delimited keys in a string with values from a properties map. This module was created as a simple alternative for Angular's $interpolate
provider. A common use of this tool is for a template interpolation use-case that does not require $parse
, $interpolate
, or $compile
.
Installation
NPM
npm install --save angular-interpolate
Bower
bower install --save angular-interpolate
Manual
<script src="path/to/directory/angular-interpolate.js"></script>
Dependencies
- Angular.js (~1.4.0)
Usage
This module uses the default {{
and }}
delimiters to distinguish interpolation keys, and these
delimiters are configurable. Keys are matched to values in a properties
object.
Include angular-interpolate
as a dependency in your project.
angular.module("MyModule", ["angular-interpolate"]);
Interpolate
with string
The Interpolate
provider accepts a string
argument, followed by a properties
object with
key-value assignments for interpolation.
var interpolated = Interpolate("I live with {{person1}} and {{person2}}.")({person1: "John", person2: "Jane"});
console.log(interpolated); // "I live with John and Jane."
Interpolate
with object
The Interpolate
provider accepts an object
argument, which will effectively interpolate the values
for all keys in the object recursively, thus interpolating all cross-referenced keys in the object.
As one can easily make an object with a circular relationship, such as:
{
prop1: "{{prop2}}",
prop2: "{{prop1}}"
}
The Interpolate
function will detect the circular relationship and throwa "Loop detected" error.
var interpolated = Interpolate({person1: "John", person2: "Jane", people: "{{person1}} and {{person2}}"});
console.log(interpolated); // {person1: "John", person2: "Jane", people: "John and Jane"
Configurable delimiters ({{
and }}
)
The Interpolate
function accepts two additional parameters: open
and close
. By default, open
= {{
, and close
= }}
.
Development
npm run build
- Build and minifynpm test
- Test
License
This project is licensed under the MIT License - see the LICENSE.txt file for details