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

javascript的JSON对象

什么是MEAN全堆栈javascript开发框架

XML和JSO的面试题(修订版)

在javascript中循环遍历python-dictionary-turned-into-json

WebSockets(Socket.io)与heroku自动断开连接,我应该扩展吗?