ng-node-compile-fork

2.0.2 • Public • Published

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:

result

<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>

Dependents (0)

Package Sidebar

Install

npm i ng-node-compile-fork

Weekly Downloads

1

Version

2.0.2

License

ISC

Last publish

Collaborators

  • diankong