2017-04-05 6 views
1

私は小道具としてint値を渡そうとしています。VueJS int接頭辞の値を0に変更する小道具

だから私は、呼び出す場合:私は取得

<job-cards-create :jobno="1203"></job-cards-create> 

answer is fine

しかし、私は一つも '0' インフロント追加した場合:

<job-cards-create :jobno="01203"></job-cards-create> 

をそれが与える:

answer is way off

何が起こっているのですか?何か不足していますか?

+1

をそれは私が思うのVueには無関係です。それはネイティブのJSの動作です:コンソールに入力するparseInt(01203、10) - >結果は643になります。なぜ - 誰かがここで答えるのを見ているのを知りません。 – wostex

+0

質問のように値をハードコーディングしていますか、それともどこかから来ていますか? – Bert

+1

@wostexその動作は、parseIntが文字列 'parseInt( '01203'、10) - > 1203'を期待しているためです。あなたの値は8進値として文字列に変換されています: '01203.toString() - >" 643 "' –

答えて

1

をあなたの数01203が原因先行ゼロに進数として解釈されているためです。これらの例をチェックアウト:

01203 === 643 // true

01203.toString() // "643"

Here is some documentation on octals in JS

0

本当に番号である必要がありますか?あなたはそれについて何か計算をしているようには見えません。ただ、v-bindをオフにノックし、代わりに文字列リテラルを使用します。

<job-cards-create jobno="01203"></job-cards-create> 
関連する問題