繁体   English   中英

使用angularjs将数据附加到json-ld

[英]appending data to json-ld using angularjs

我是angularjs的新手,因此我开始从事该项目,以了解有关此框架的更多信息。 我制作了一个将数据放入json-ld的应用程序。我的应用程序可以将数据添加到json-ld,但是没有我想要的输出格式,这是一个:<<“ schema:data” >>。这是我的html和角度文件:

 <!DOCTYPE HTML> <html> <head> <title> reelyActive: Angular Test </title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"> </script> <script type="text/javascript" src="watch.js"> </script> <link rel="stylesheet" href="style.css" /> </head> <body ng-app="watch"> <ul> <li><a href="product.html">Product</a></li> <li><a href="place.html">Place</a></li> </ul><br/><br/> <div ng-controller="ctrl"> <form> GivenName: <input type="text" ng-model="volatile.givenName"> <br/> FamilyName: <input type="text" ng-model="volatile.familyName"> <br/> Gender: <input type="text" ng-model="volatile.gender"> <br/> Nationality: <input type="text" ng-model="volatile.nationality"> <br/> WorksFor: <input type="text" ng-model="volatile.worksFor"> <br/> JobTitle: <input type="text" ng-model="volatile.jobTitle"> <br/> Url: <input type="text" ng-model="volatile.url"> <br/> Image: <input type="text" ng-model="volatile.image"> <br/> </form> <h1> Your JSON </h1> <p> {{output}} </p> </div> </body> </html> 

 angular.module("watch", []) .controller("ctrl", function($scope) { $scope.output = { "@context": { "schema": "http://schema.org/" }, "@graph": [{ "@id": "person", "@type": "schema:Person", } ] } $scope.volatile = {}; $scope.output["@graph"][0]["schema:givenName"] = ""; $scope.$watch(function(scope) { return scope.volatile }, function(newValue, oldValue) { $scope.output = newValue; }); }) 

例如,如果用户以给定的名称形式输入内容,它会以如下形式出现在我的json-ld的@graph部分中:<<“ schema:givenName”:user data >>。 我知道我的解释不是很清楚,如果我可以为可能的解决方案提供演示,那将对我有很大帮助

我认为这就是您想要的。 小提琴

我在您的代码中所做的更改:

  1. 我用ng-change代替$watch 它们之间的区别: 参考

  2. 我创建一个changeKeyValue方法以从$scope.volatile提取键值 ,并在input发生任何更改时将其附加到您的@graph

     for (var key in $scope.volatile) { if ($scope.volatile.hasOwnProperty(key)) { $scope.output["@graph"][0]["schema:" + key] = $scope.volatile[key]; } } 

    基本上,它只是遍历对象,提取键值并将其附加到output 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM