2017-07-28 31 views
1

我在做一個過濾器頁面,我需要爲此存儲過濾器名稱和過濾器值 ,I有一個這樣的結構:將v模型設置爲數組中的鍵(v-model.key =「someArray」)

data: { attributes: { checkboxes: [], strings: { keys: [], values: [] }, ...

和HTML看起來像(順便說一句,我使用Laravel刀片太多,但這裏是不相關):

... 
@if ($atribut->type == 'checkbox') 
    <label class="btn btn-default" for="{{ $atribut->tag }}"> {{ $nom }} <input v-model="attributes.checkboxes" class="badgebox" id="{{ $atribut->tag }}" type="checkbox" value="{{ $atribut->id }}"><span class="badge">&check;</span></label> 
    <br> 
    <br> 
@endif 
@if ($atribut->type == 'string') 
    @php $nom = obj_array_find(DB::table('literals')->get(), $atribut->nom, 'id')->cat @endphp 
    <input type="hidden" v-model="attributes.strings.keys" value="{{ $atribut->id }}"> 
    {!! Form::text($atribut->tag, null, ['class' => 'form-control', 'placeholder' => $nom, 'v-model' => 'attributes.strings.values']) !!} 
    <br> 
@endif 
... 

的問題是,有可能有這樣的事情:

<input type="hidden" v-model.key="attributes.strings" value="{{ $atribut->id }}"> 
{!! Form::text($atribut->tag, null, ['class' => 'form-control', 'placeholder' => $nom, 'v-model.value' => 'attributes.strings]) !!} 
+0

可以爲您提供您希望您的輸入看起來像Vue的運行後什麼一個例子,輸入本身被賦予?我假設你想要輸入來填充屬性的關鍵vand值。那是對的嗎?另外,你能否在這個屬性數據中添加一些示例數據?屬性是鍵值對的列表?屬性:{複選框:[1,2,3],字符串:{鍵:[1,2,3],值:[1,2,3]}還是它是一個相同數據集的數組?屬性:{[複選框:[1],字符串:{鍵:[1],值:[1],複選框:[2],字符串:{鍵:[2],值:[2]],} – Dom

回答

0

要回答您的具體問題,v模型將綁定到一個鍵值對,您不需要分配鍵。

結構化輸入綁定的方式輸入框將綁定對象到您的值字段,您將在輸入框中看到[Object object]。

我創建了這個jsfiddle,它告訴你如何綁定到模型。我假設你的數據是以下列表格式建模的。

attributes: [ 
    {checkboxes: [1], strings: { keys: [1], values: ['tomato'] }}, 
    {checkboxes: [2], strings: { keys: [2], values: ['potato'] }} 
] 

我還爲您提供了一個json對象來觀察這兩個鍵的每一個的數據更新。這將幫助您調試實際嘗試去的地方。

的jsfiddle沒有辦法呈現laravel刀片,所以這裏是刀片版本:

<input v-for="attribute in attributes" type="hidden" v-model="attribute.strings.values" value="1"> 
{!! Form::text('bam', null, ['v-for' => 'attribute in attributes', 'class' => 'form-control', 'placeholder' => 'boom', 
     'v-model' => 'attribute.strings.values']) !!} 

如果,你提到你的問題的開始,你正在尋找創建一個過濾器(我假設一個自動完成類型的對象?),這不是做到這一點的方式。

希望這會有所幫助。

0

對不起,我不好解釋的傢伙,但我終於找到了一個解決方案,

我的意思是,我需要在輸入的大名單,其中值asociated到每個輸入和做的最好辦法知道它是這一個:

v-model="{{ 'filtres.transaccions["'.$atribut->tag.'"]' }}" 

(如果你用刀片渲染)

data: { 
    filtres: { 
    transaccions: {} 
    } 
} 

,因爲你這樣這樣說:

this.filtres.transaccions.someInputKey: SomeInputValue 

在將鍵由$atribut->tag給予當然的價值將通過