2016-03-30 4 views
0

私が意図していない動作に気付いています。私は<textarea>を持っています。私は下のようにテキストを入力できます。角入力で改行を維持する方法

some content 
some other content 
yet another content 

私は私が得るもの、JSONオブジェクトにこのテキストを保存し、それを格納しています:

"value" : "some content 
some other content  
yet another content" 

:また

"value" : "some content some other content yet another content" 

、私は時々これを取得します私が何をしてきたかは、を受け取ることを期待して

"value" : "some content \n 
    some other content \n  
    yet another content" 

このようにして、入力したのと同じ方法でコンテンツを表示できます。

しかし、これは私のJSON.parse(string)を破るようです。 入力のモデルにはAngluarJSを使用しています。

EDIT:

これは私がJSONバリデータで私のオブジェクトを置けば何が起こるかです: enter image description here

+1

どのようにテキストエリアのテキストを保存していますか? –

+0

私はそれをオブジェクトに保存します。 const data = {text:$ scope.text}それから私は私のサーバーにrethinkデータベースにそれを保存します。それですか?助けてくれますか? –

+0

JavaScriptでエラーが出ますか? (もしそうなら、それは問題です)...今は、_problem_がコンソールからウェブサイトにコピーしているので、引用符を '' 'バッククイック' 'で置き換えることができます –

答えて

1

あなたがしようとすると何か他のものに改行文字を置き換えることができます。 改行文字がJSON.parseで問題を引き起こしている場合は、<br/>のようなものに置き換えてください。データを取得するときに改行のように動作します。

あなたはまた、目に見える改行文字をJSON文字列にあなたのtextarea値を変換する必要がありJSON.parseを使用する前にtextarea値にJSON.stringifyを試みることができます。

document.getElementById("textarea-id").value.replace(/\n\r?/g, '<br />') 

OR

JSON.stringify(document.getElementById("textarea-id").value) 

以下の例ではconsole.log年代を参照してください: https://jsfiddle.net/fjj2psqj/1/

+0

私の問題は、データベース内のどこかで改行文字\ nを使わないで改行します。 –

+0

はい、改行文字は表示されませんが、文字列内に存在します。上記のように置換すると、テキストエリアの新しい行が
に置き換えられます。 –

+0

ok私はそれを試してみましょう –

0
// valid JSON 
var data = { 
    "value": [ 
     "line", 
     "line", 
     "line" 
    ] 
}; 

// stringify the data to save it as text 
var dataString = JSON.stringify(data); 

// parse the string and join the array to recover line breaks 
// or iterate over values array depending on your use case 
var withNewLines = JSON.parse(dataString).value.join("\n"); 
0
あなたはそれを送信する前にJSON.stringifyを通して、あなたのキャプチャテキストエリアの文字列を実行することができ

あなたのアプリケーションに再び使用する前にそれをJSON.parseしてください。

$scope.doSomethingWithTextareaText = function() { 
    //assuming your textarea is bound to $scope.text 
    $scope.myObject['value'] = $scope.text; 
    $scope.myObject['stringifyValue'] = JSON.stringify($scope.text); 
    /* 
     $scope.myObject[value]: 
     some content 
     some other content 
     yet another content 
     $scope.myObject[stringifyValue]: 
     "some content\nsome other content\nyet another content" 
     JSON.parse($scope.myObject[stringifyValue]): 
     some content 
     some other content 
     yet another content 
    */ 
} 

http://jsfiddle.net/5d2oekv0/3/を参照してください。

関連する問題