【发布时间】:2016-05-21 19:43:21
【问题描述】:
如何在 AngularJS 中使用动态构建的 JSON 对象创建 application/ld+json script 标记。
这就是我需要脚本标签的样子
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Place",
"geo": {
"@type": "GeoCoordinates",
"latitude": "40.75",
"longitude": "73.98"
},
"name": "Empire State Building"
}
</script>
我已经尝试了以下代码,但我无法让它工作:
HTML
<div ng-controller="TestController">
<script type="application/ld+json">
{{jsonId|json}}
</script>
{{jsonId|json}}
</div>
控制器
var myApp = angular.module('application', []);
myApp.controller('TestController', ['$scope', function($scope) {
$scope.jsonId = {
"@context": "http://schema.org",
"@type": "Place",
"geo": {
"@type": "GeoCoordinates",
"latitude": "40.75",
"longitude": "73.98"
},
"name": "Empire State Building"
};
}]);
脚本标签内的表达式不执行。 script 标签外的表达式正确执行并显示 JSON
请看jsfiddle
【问题讨论】:
-
如何判断它是否执行?它只是一个匿名对象...
-
@dandavis
json是一个输出 JSON 对象的过滤器。如果查看源代码,则脚本标签之间没有 JSON 对象。
标签: javascript angularjs json json-ld