Руководство по выполнению условного оператора в методе Vue - PullRequest
0 голосов
/ 25 января 2019

У меня есть следующий метод в Vue:

shareSubmit: function (schoolId, schoolName, schoolType) {
  this.$eventBus.$emit('share-school-event', {
    schoolId: schoolId,
    schoolName: schoolName,
    schoolType: 'school/' + schoolType,
    schoolAbbr: ''
  });
},

То, что я хотел бы сделать, это установить 'schoolAbbr' на основе значения 'schoolType'. Например, если schoolType имеет значение «College», я хотел бы установить для «schoolAbbr» значение «c.»

Я пробовал это, но не повезло:

shareSubmit: function (schoolId, schoolName, schoolType) {
  this.$eventBus.$emit('share-school-event', {
    schoolId: schoolId,
    schoolName: schoolName,
    schoolType: 'school/' + schoolType,
    if (schoolType == 'college' {
      schoolAbbr: 'c';
    }
  });
},

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы можете использовать синтаксис Spread в ES6, как показано ниже:

shareSubmit: function (schoolId, schoolName, schoolType) {
  this.$eventBus.$emit('share-school-event', {
    schoolId: schoolId,
    schoolName: schoolName,
    schoolType: 'school/' + schoolType,
    ...(schoolType == 'college' ? {schoolAbbr: 'c'}: {}),
  });
},
0 голосов
/ 25 января 2019

Проблема в том, что вы пытаетесь получить доступ к свойству schoolType внутри того же объекта, в котором он определен. Более простой способ сделать это - поместить то, что станет schoolType, в переменную перед.... $ emit (. Тогда вы можете использовать эту переменную в обоих местах.

  var innerSchoolType = 'school/' + schoolType;
  var schoolAbbr = //logic based on innerSchoolType here

  this.$eventBus.$emit('share-school-event', {
    schoolId: schoolId,
    schoolName: schoolName,
    schoolType: innerSchoolType,
    schoolAbbr: schoolAbbr
  });
},```
...