Как проверить, выбран ли v-select, если элемент выбран

Как правильно в vuejs с помощью if v-select проверить, выбран ли элемент, имеющий в массиве опций массив code/label?

Я пробовал как:

<v-select 
  v-model="selection_filter_priority" 
  label="label" 
  :options="taskPriorityLabels" 
  id="filter_priority"
  name="filter_priority" 
  class="form-control editable_field" 
  placeholder="Select all"
></v-select>
console.log('-11 typeof this.selection_filter_priority::')
console.log(typeof this.selection_filter_priority)
console.log(this.selection_filter_priority)

if (typeof this.selection_filter_priority == 'object' && typeof this.selection_filter_priority != null) {
  filter_priority = this.selection_filter_priority.code // But if option is not selected(null) I got error here:
}

Какой правильный способ?

"vue": "^ 2.6.10", "vue-select": "^ 3.2.0",


person mstdmstd    schedule 23.12.2019    source источник


Ответы (1)


Ваш код неправильно проверил, является ли this.selection_filter_priority null. Чтобы проверить, является ли объект null, используйте вместо него if (this.selection_filter_priority === null).

Смотрите демонстрацию ниже:

var nullValue = null;
var objectValue = {};
var numberValue = 1;

console.log('null');
check(nullValue);
console.log('\n');

console.log('object');
check(objectValue);
console.log('\n');

console.log('number');
check(numberValue);
console.log('\n');

function check(x) {
  if (x === null) {
    console.log('is null');
  }

  if (typeof x == 'object' && typeof x != null) {
  // is same as if (typeof x == 'object')
    console.log('null or object');
  }
  
  if (typeof x != null) {
    console.log('always true');
  }
}

person Loi Nguyen Huynh    schedule 23.12.2019