我正在尝试将一些值从快速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 code snippet
<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”的值(由服务器post方法中的内容中的'data'呈现)。
我想在angularjs控制器中将相同的'reconData'指定为范围变量(engineData),但我无法这样做... Angular 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'?
答案 0 :(得分: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) {});
});