V-переключатель возвращает ложное значение при проверке

Это известная проблема, и одно возможное решение предоставляется drop.levels() в пакете gdata , где ваш пример становится

> drop.levels(subdf)
  letters numbers
1       a       1
2       b       2
3       c       3
> levels(drop.levels(subdf)$letters)
[1] "a" "b" "c"

Существует также dropUnusedLevels в пакете Hmisc . Однако он работает только путем изменения оператора подмножества [ и здесь неприменим.

В качестве следствия прямой подход на основе столбца является простым as.factor(as.character(data)):

> levels(subdf$letters)
[1] "a" "b" "c" "d" "e"
> subdf$letters <- as.factor(as.character(subdf$letters))
> levels(subdf$letters)
[1] "a" "b" "c"

-1
задан Bülent Akgül 2 March 2019 в 18:23
поделиться

1 ответ

Свяжите v-switch, используя v-model, со значением data и используйте его.

<v-switch
    v-model='switchValue'
    :name="['leave_it_' + listItem.asset_id]"
    @change="setAction(listItem)"
>
</v-switch>
data: {
  return {
     switchValue: false
  }
}
var action = this.switchValue ? "Leave it Alone" : "Take an Action";

Кроме того, вы можете полностью потерять :name. И вместо @change вы можете watch switchValue. Это путь Vue .

watch:{
  theSwitch(newValue){
  }
}

Вот пример привязки нескольких флажков.

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js">
  js ">
</script>

<div id="app">
  <div v-for='i of count'>
    <label>
       Item {{i}}
       <input v-model=checks[i] type='checkbox'></input>  
  </label>
  </div>

  <div>Values: {{checks}}</div>
</div>


<script>
  var app = new Vue({
    el: '#app',
    data: {
      count: 10,
      checks: Array(10).fill(false),
    },
    watch: {
      checks(value) {
        console.log('value changed', value)
      }
    }
  })
</script>

0
ответ дан Steven Spungin 2 March 2019 в 18:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: