2016-08-04 14 views
0

Ich habe ein Knoten + eckiges Projekt. Ich möchte eine HTML-Seite rendern und sie mit einigen Werten initiieren. Ich möchte diese Werte mit dem Angular Scope verknüpfen.Render HTML-Dateien mit EJS mit Winkel in

Also ich habe einen Eingang, ich verlinkte es mit ng-Modell, aber dies löscht die EJS-Initialisierung.

server.js:

var express = require('express'); 
var app = express(); 
app.engine('html', require('ejs').renderFile); 
app.set('views', __dirname + '/front/views'); 
app.set('view engine', 'html'); 
app.use('/front',express.static(__dirname + '/front')); 

app.get('/signup',function(req,res){ 
    res.render('view',{ 
     user:{ 
      email:"user mail", 
     } 
    }) 
}); 
var port = 5000; 
app.listen(port, function() { 
    console.log("Listening on " + port); 
}); 

view.html:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script> 

<script src="/front/controllers/app.js"></script> 

<html ng-app="onboardingApp"> 

    <form id="msform" novalidate ng-controller="onboardingController"> 

     <input required type="text" name="email" ng-model="signup.user.email"> 
     <label for="email">Email</label> 

     <input type="button" name="next" ng-click="displaySignup()" value="NEXT"/> 

    </form> 

</html> 

app.js:

var onboardingApp = angular.module('onboardingApp', []); 

onboardingApp.controller('onboardingController',function OnboardingController($scope) { 

    $scope.signup = { 
     user:{ 
      email:"" 
     } 
    } 

    $scope.displaySignup = function(){ 
     console.log($scope.signup) 
    } 

}); 

Also versuche ich, den Wert zu setzen: input required type="text" name="email" ng-model="signup.user.email"

mit ejs und dann dass dieser Wert mit dem Winkelmodell verknüpft werden soll signup.user.email.

Kann mir jemand dabei helfen?

Antwort

0

Sie dieses Stück von js am Ende Ihrer view.html

<script type="text/javascript"> 
     angular.module('onboardingApp') 
     .value('userEmail', <%- JSON.stringify(user.email) %>); 
</script> 

und dann injizieren, um die Komponente überall dort, wo Sie es brauchen wie so hinzufügen:

onboardingApp.controller('onboardingController', 
function OnboardingController($scope, userEmail) { 

    $scope.signup = { 
     user:{ 
      email: userEmail 
     } 
    } 

    $scope.displaySignup = function(){ 
     console.log($scope.signup) 
    } 

}); 
+0

Es Sie arbeitet danken:) –