2016-05-31 4 views
1

Я пытаюсь передать некоторые значения из экспресс-сервера NodeJS в переменную контроллера AngularJS. Вот фрагмент кода ....Передача значений из переменной Express NodeJS в переменную контроллера AngularJS

Сервера

app.post('/run-engine', function(req, res){ 
    console.log(req) 

    res.writeHead(200, {'Content-Type': 'text/html'}); 

    fs.readFile('index.html', 'utf-8', function(err, content) { 
    if (err) { 
     res.end('error occurred'); 
     return; 
    } 
    var reconData = 'some temp'; //here I assign temp variable with needed value 

    var renderedHtml = ejs.render(content, {data: reconData}) 
    res.end(renderedHtml); 
    }); 

}); 

HTML фрагмент код

<section class="mdl-layout__tab-panel tab2" id="scroll-tab-2"> 
    <div class="page-content"> 
    <h1>This is Tab2</h1> Data: <%= data %> 
    <form method='post' action='run-engine' enctype="multipart/form-data"> 
     <input type='file' name='fileUploaded'></input> 
     <input type='submit'></input> 
    </form> 
    </div> 
</section> 

На странице HTML, я мог видеть значение "reconData" (который вынесенный «данные» в контенте из метода почтовых сообщений).

Я хочу, чтобы то же самое «reconData» быть назначен в качестве переменной сфера (engineData) в angularjs контроллере, но я не могу сделать это ... Угловое JS код контроллера сниппет

var myApp1 = angular.module('msnapp',[]); 
myApp1.controller("MsnController", function($scope, $http) { 
    $scope.engineData = ?? //this needs to be equal to reconData from server side 
}); 

Как получить engineData, который должен быть назначен как «reconData» с сервера?

ответ

1

Попробуйте

var myApp1 = angular.module('msnapp',[]); 
myApp1.controller("MsnController", function($scope, $http) { 

    $http({ method: 'POST', 
      url: '/run-engine' 
     }).then(function (response){ 
      $scope.engineData = response.data; 
     }, function (error) {}); 

}); 
+0

'ответ' является весь HTML тело – Jay

+0

@Jay Да это. Я обновил его, чтобы вытащить только данные ... как говорят документы [$ http] (https://docs.angularjs.org/api/ng/service/$http) – Wainage

+0

Но как я могу получить только «reconData», так что что я могу использовать значение на странице html. Мне нужно привязать значение к переменной углового контроллера. Для этой переменной используется тело html. Как я покажу, в HTML я могу напрямую использовать значение reconData (через переменную data), но мне нужно это в угловом контроллере. – Jay

Смежные вопросы