ExpressJS/AngularJS:将 JSON 对象转换为字符串
Posted
技术标签:
【中文标题】ExpressJS/AngularJS:将 JSON 对象转换为字符串【英文标题】:ExpressJS/AngularJS : Converting JSON Object to String 【发布时间】:2014-09-25 09:26:59 【问题描述】:我正在为一些可能非常简单的事情而苦苦挣扎,但在 Stackoverlow 上搜索数小时并没有帮助。
我将 Trevor 爵士与 MEANJS 一起使用。特雷弗爵士将自身应用于 textarea 字段并将其内容保存为 JSON 字符串。
Sir Trevor 正在将其内容保存到字段 Content
,该字段在 Mongoose 架构中设置为 Object
类型。
创作效果很好,一切都按预期保存。
但是,在编辑时,数据无法正确显示。文本字段被分配data-ng-model="article.content"
[模型中的“内容”字段],但显示为[object Object]
,因此当 Trevor 爵士尝试解析该值时,它会出错。
我尝试使用带有$formatters
的指令来更改值:
<textarea data-ng-model="article.content" id="content"
class="form-control st-instance" placeholder="Content" stRaw>
</textarea>
...这里是指令:
articleApp.directive('stRaw', function()
return
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel)
function stringIt(val)
return JSON.stringify(val);
ngModel.$formatters.push(stringIt);
;
);
但似乎从未触发过该指令[我在链接函数中尝试了console.log
,但从未看到任何东西]。
通过更改架构类型String
,然后在代码中一遍又一遍地使用stringify
,我能够使其正常工作。这看起来很草率,造成了过度膨胀,并且在尝试在实际视图页面上迭代时也带来了挑战[它被视为String
——无法弄清楚如何解析]。
我假设我需要在呈现之前以某种方式捕获 article.content
属性并将值更改为字符串。这是正确的方向吗?
【问题讨论】:
你能给我们一个console.log(article.content) @ma08 - 在服务器端代码上做一个console.log(article.content) [根据id查找文章] 返回“ data: [ data: [Object], type: 'heading' , data: [Object], type: 'text' ] " ... 但是,从角度端运行相同的 console.log [在用于填充编辑屏幕的代码中],它来了返回未定义。 在客户端? 嗨@ma08 - 我输入得太早了,所以不得不编辑我的回复。 =) 在我将 $scope.article 设置为从服务器端查询中找到的文章的代码中运行 console.log(article.content) 会导致未定义。在 firebug 中检查 $scope 显示内容填充了具有预期键值对的对象。 如果有任何不同,其余字段会正确显示——标题、slug、标签等。这真的只是我遇到的挑战。 【参考方案1】:您的 html 中有错字,stRaw
应该是 st-raw
。
<textarea data-ng-model="article.content" id="content" class="form-control st-instance" placeholder="Content" st-raw></textarea>
【讨论】:
Sheesh——我讨厌忽略这么简单的事情。谢谢! 欢迎您 :) 当我开始学习 angularjs 时,我自己经常对这类问题感到沮丧。以上是关于ExpressJS/AngularJS:将 JSON 对象转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
Google-cloud-dataflow:无法通过带有“BigQueryDisposition.WRITE_TRUNCATE”的“WriteToBigQuery/BigQuerySink”将 jso