如何在node.js“html页面”中显示json字符串化数组数据?
Posted
技术标签:
【中文标题】如何在node.js“html页面”中显示json字符串化数组数据?【英文标题】:How to display json stringify array data in node.js "html page"? 【发布时间】:2018-03-15 19:28:13 【问题描述】:我有一个 JSON 数据数组,它是来自 Clarifai 识别的 predict(...)
调用的响应,我正在尝试在我的 html 中显示数据数组。我使用ng-repeat
来显示数组,但它不起作用。如何在 HTML 中显示数组?下面是我的 JS 文件和 HTML 文件的代码 sn-p。
var app = angular.module("starter",['ionic']);
app.controller("myCtrl", function($scope,$rootScope)
const app = new Clarifai.App( apiKey: 'e7f899ec90994aeeae109f6a8a1fafbe' );
$rootScope.records = [];
// predict the contents of an image by passing in a url
app.models.predict("pets",'https://samples.clarifai.com/puppy.jpeg').then(
function(response)
// The JSON.stringify() method converts a javascript value to a
// JSON string optionally replacing values if a replacer function
// is specified, or optionally including only the specified
// properties if a replacer array is specified.
for(var i=0; i < 2; i++)
$rootScope.records[i] = JSON.stringify(response.outputs[0].data.concepts[i].name);
console.log(`module concept = $$rootScope.records[i]`);
alert($rootScope.records[i]);
,
function(err)
console.error(err);
);
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link rel="manifest" href="manifest.json">
<!-- un-comment this code to enable service worker
<script>
if ('serviceWorker' in navigator)
navigator.serviceWorker.register('service-worker.js')
.then(() => console.log('service worker installed'))
.catch(err => console.log('Error', err));
</script>-->
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<script type="text/javascript" src="https://sdk.clarifai.com/js/clarifai-latest.js"></script>
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
</head>
<body ng-app="starter"ng-controller="myCtrl">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content>
<h1 ng-repeat="x in records">x</h1>
</ion-content>
</ion-pane>
</body>
</html>
【问题讨论】:
【参考方案1】:我建议手动触发摘要循环,因为您的 predict
调用是异步的。
// add a reference to $timeout
app.controller("myCtrl", function($scope, $rootScope, $timeout)
// ...
// predict the contents of an image by passing in a url
app.models.predict("pets",'https://samples.clarifai.com/puppy.jpeg').then(
function(response)
for(var i=0; i < 2; i++)
$rootScope.records[i] = JSON.stringify(response.outputs[0].data.concepts[i].name);
console.log(`module concept = $$rootScope.records[i]`);
// add the following $timeout call to manually trigger a digest cycle
$timeout(() => ); /* OR */ $scope.$digest();
,
function(err)
console.error(err);
);
);
【讨论】:
另外,您可以使用$scope.$digest()
,而不是使用$timeout
函数 -> 请参阅我对这个问题的回答:***.com/questions/42620655/…
是的,也是。
@Ghassen Louhaichi 我还有一个关于 Angular js 的问题,你可以给我发电子邮件吗
此处不宜粘贴个人信息,建议您新建一个问题并将链接粘贴至此处。或者如果它与这个问题有关,你可以编辑这个。
只需在此处或问题中添加评论,表明您已使用新问题对其进行了编辑。以上是关于如何在node.js“html页面”中显示json字符串化数组数据?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node.js 和 Express 将 JSON 数据集显示为表格
Node.js app.js 不显示 HTML 页面,而是显示 HTML 代码