JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – AngularJS脚本标记JSON-LD大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在AngularJS中使用动态构建的 JSON对象创建一个application / ld json脚本标记.

这就是我需要脚本标签的样子

<script type="application/ld+json">
{
  "@context": "http://scheR_562_11845@a.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://scheR_562_11845@a.org","geo": {
      "@type": "GeoCoordinates","longitude": "73.98"
    },"name": "Empire State Building"
  };
}]);

脚本标签中的表达式不执行.
脚本标签之外的表达式正确执行并显示JSON

请参阅jsfiddle

解决方法

一杯咖啡后,我记得有一个$sce服务与一个trustAsHtml功能.

我创建了一个接受json参数以便于重用的指令

请参阅以下更新和工作代码:

HTML

<div ng-controller="TESTController">
  <jsonld data-json="jsonId"></jsonld>
</div>

使用Javascript

var myApp = angular.module('application',"name": "Empire State Building"
  };
}]).directive('jsonld',['$filter','$sce',function($filter,$scE) {
  return {
    reStrict: 'E',template: function() {
      return '<script type="application/ld+json" ng-bind-html="onGetJson()"></script>';
    },scope: {
      json: '=json'
    },link: function(scope,element,attrs) {
      scope.onGetJson = function() {
        return $sce.trustAsHtml($filter('json')(scope.json));
      }
    },replace: true
  };
}]);

这是脚本输出的映像

请看更新@L_801_2@

大佬总结

以上是大佬教程为你收集整理的javascript – AngularJS脚本标记JSON-LD全部内容,希望文章能够帮你解决javascript – AngularJS脚本标记JSON-LD所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。