2.0.2 • Published 10 years ago
ng-node-compile-fork v2.0.2
This is just a fork, works with koa, won't update anymore.
ng-node-compile-fork
only works with iojs
Compile html templates the angular way, in node js! this is a pretty new package, so don't hesitate adding issues or pull requests!
new ngcompile().$interpolate("hello {{name}}")({ name: 'Jhon doe' });
Install
$ npm install ng-node-compile-fork
How to Use?
The library exposes several angular services, which will let you compile angular templates inside node:
ngcompile
this is the function to create a angular enviorment. just
var ngEnviorment = new ngcompile([modules],[angularPath]);
arguments:
modules: optional. array of modules to inject to angular enviorment. example: {name: 'testModule', path: './test.js'}
angularPath: optional. path to angular.js file, in case you want another angular version.
$interpolate:
var ngcompile = require('ng-node-compile-fork');
// build angular env
yield ngcompile.prototype.env;
var ngEnviorment = new ngcompile();
var result = ngEnviorment.$interpolate("hello {{name}}!")({ name: 'Jhon doe' });
this wil return a string "hello Jhon doe"
$compile:
var ngcompile = require('ng-node-compile-fork');
// build angular env
yield ngcompile.prototype.env;
var ngEnviorment = new ngcompile();
var result = ngEnviorment.$compile("<div ng-repeat=\"n in [1,2,3,4,5]\">hello {{name}} {{n}}</div>")({ name: 'Jhon doe' });
Following example is an old version and havn't updated yet.
##example using co:
app.js:
var ngcompile = require('ng-node-compile-fork');
co(function *(){
// build angular env
yield ngcompile.prototype.env;
var ngEnviorment = new ngcompile([{ name: 'test', path: './test.js' }]);
var result = ngEnviorment.$compile("<div ng-repeat=\"n in [1,2,3,4,5]\" yellow=\"{{n==3}}\">hello {{name}} {{n}}</div>")({ name: 'Jhon doe' });
console.log("result is: " + result);
});
test.js:
angular.module('test', [])
.directive('yellow', [function () {
return {
restrict: "A",
replace: false,
scope: false,
link: function (scope, element, attr) {
if (attr['yellow'].toString() === "true") element.css('color', 'yellow')
}
}
}])
and the restlt simply looks this way:
<div ng-repeat="n in [1,2,3,4,5]" yellow="false" class="ng-binding ng-scope">hello Jhon doe 1</div>
<div ng-repeat="n in [1,2,3,4,5]" yellow="false" class="ng-binding ng-scope">hello Jhon doe 2</div>
<div ng-repeat="n in [1,2,3,4,5]" yellow="true" class="ng-binding ng-scope" style="color: yellow;">hello Jhon doe 3</div>
<div ng-repeat="n in [1,2,3,4,5]" yellow="false" class="ng-binding ng-scope">hello Jhon doe 4</div>
<div ng-repeat="n in [1,2,3,4,5]" yellow="false" class="ng-binding ng-scope">hello Jhon doe 5</div>