2017-06-14 12 views
0

私は私が私のコンポーネントを補給するのです範囲に基づいて、V-のためのリストを作成しています:型キャストのV-のためのキーのVue

<div class="checkbox" v-for="(value, key) in range"> 

私はそうのような小道具としての私のデータを補給するのです:

"{ 0: '0 stars', 1: '1 star', 2: '2 stars' }" 

typeofを記録すると、私のv-forキーは常に文字列として設定されます。これは、文字列ではなく数字としてキーを保持するオブジェクトを渡すので、これは奇妙です。

メソッドにキーを渡すと、常に型キャストしたくありません。簡単に型キャストする方法はありますか?

また、これがintではなく文字列として出現する原因は何ですか?私は私のrangeオブジェクトをCONSOLE.LOGたび

キーはので、私は、彼らはまだint型として表示され、その時点で推測してい紫色で表示されますか? JavaScriptで

答えて

1

は常に文字列であるキーオブジェクト。文字列ではなく、自動的に文字列に変換されたキーをjavascriptで提供します。

<div class="checkbox" v-for="(value, key, index) in range"> 

そして、あなたの方法にインデックスを渡すが、vuejsよう警告している(here):私の知る限り、それは設計上の選択によって.See Object.keys()

あなたはこのようなあなたの第三argumemtとしてインデックスを渡すことができている

When iterating over an object, the order is based on the key enumeration order of Object.keys(), which is not guaranteed to be consistent across JavaScript engine implementations.

このようにキャストする方が良いmyMethod(Number(key))

+0

私はすでに型キャストを行っています。下のあなたの例です。しかし、少し面倒な気がするが、私はそれに固執すると思う。ご回答有難うございます。ステファン-V @ –

+2

オブジェクトに順序が配列にあなたがインデックスに頼ることができないのと保証するものではありませんので、 –