0

アンギュラー Cookie を扱っていたとき、$cookies によって受け入れられるのは文字列のみであり、設定時にブラウザーの Cookie に保存されることがわかりました。すなわち

次のCookieを設定した場合

$cookies.id = 12345;
$cookies.name = "Prasad";

ブラウザには$cookies.nameのみが設定されています。だから私はそれをに変更しなければなりませんでした

$cookies.id = "12345";

それを機能させるために。

デモを表示するフィドル リンクを次に示します

理由を確認するためにAngularソースコードをチェックしようとしましたが、値がisStringであることを意図的にチェックしていることがわかりました。

文字列値のみを受け入れる特定の理由はありますか。ブラウザの Cookie に追加するときに、整数も許可して文字列に変換することはできませんか。

ありがとう!

4

1 に答える 1

0

主な理由はおそらく、Cookie の値が常に文字列としてブラウザーに保存されるためです。確かに、Angular では、サービスを使用するときに int として保存し、Cookie を作成する前に変換することができます。問題は、後でその Cookie を読み取るときに、値がまだ int であると人々が想定することです (結局、それが彼らがそれを保存した方法です)。

そうではなく、文字列になります。

Angular は、前もって厳密である方がよいと推論しているようです (私も個人的に同意します)。入力が出力と同じになるように強制して、Cookie を読み取ったときに返される内容を人々が誤解しないようにします。

于 2013-11-18T14:09:36.883 に答える