2013-02-25 4 views
4

Как использовать if statement внутри JSON Вот код: ................................................ .................................................. ..Как использовать оператор if внутри JSON?

var config = 
      [ 
       { 
        "name"  : "SiteTitle", 
        "bgcolor" : "", 
        "color"  : "", 
        "position" : "TL", 
        "text"  : "step1", 
        "time"  : 5000 
       }, 
       { 
        "name"  : "Jawal", 
        "bgcolor" : "", 
        "color"  : "", 
        "text"  : "step2", 
        "position" : "BL", 
        "time"  : 5000 
       }, 
       { 
        "name"  : "Password", 
        "bgcolor" : "", 
        "color"  : "", 
        "text"  : "step3", 
        "position" : "TL", 
        "time"  : 5000 
       } 
      ], 

      //define if steps should change automatically 
      autoplay = false, 
      //timeout for the step 
      showtime, 
      //current step of the tour 
      step  = 0, 
      //total number of steps 
      total_steps = config.length; 

Это требуемый результат что-то вроде этого:

var config = 
     [ 

    if(page==true) {    
      { 
       "name"  : "SiteTitle", 
       "bgcolor" : "", 
       "color"  : "", 
       "position" : "TL", 
       "text"  : "step1", 
       "time"  : 5000 
      }, 
      { 
       "name"  : "Jawal", 
       "bgcolor" : "", 
       "color"  : "", 
       "text"  : "step2", 
       "position" : "BL", 
       "time"  : 5000 
      } 
    } else { 
      { 
       "name"  : "Password", 
       "bgcolor" : "", 
       "color"  : "", 
       "text"  : "step3", 
       "position" : "TL", 
       "time"  : 5000 
      } 
    } 
     ], 

      //define if steps should change automatically 
      autoplay = false, 
      //timeout for the step 
      showtime, 
      //current step of the tour 
      step  = 0, 
      //total number of steps 
      total_steps = config.length; 

на самом деле этот путь не так и делает ошибку синтаксиса JavaScript.

ответ

2

Это обычный JavaScript, а не JSON. Переместить if заявление снаружи:

if (page) { 
    var config = [ 
     { 
      "name"  : "SiteTitle", 
      "bgcolor" : "", 
      "color"  : "", 
      "position" : "TL", 
      "text"  : "step1", 
      "time"  : 5000 
     }, { 
      "name"  : "Jawal", 
      "bgcolor" : "", 
      "color"  : "", 
      "text"  : "step2", 
      "position" : "BL", 
      "time"  : 5000 
     } 
    ]; 
} else { 
    var config = [ 
     { 
      "name"  : "Password", 
      "bgcolor" : "", 
      "color"  : "", 
      "text"  : "step3", 
      "position" : "TL", 
      "time"  : 5000 
     } 
    ]; 
} 
+0

Это сделает синтаксическую ошибку, потому что у вас есть комплементарный код , автозапуск = ложь, ShowTime, Шаг = 0, total_steps = config.length; –

+0

@ MontaserEl-sawy: Нет, не совсем. Попробуй. – Blender

+0

Пробовали код будет: если (settingsPage) { \t \t \t \t вар конфиг = "имя" [ \t \t \t \t { \t \t \t \t \t: "SiteTitle", \t \t \t \t \t "bgcolor": "", \t \t \t \t \t "Цвет": "", \t \t \t \t \t "позиция": "TL", \t \t \t \t \t "Текст": "step1", \t \t \t \t \t "Время": 5000 \t \t \t \t} \t \t \t \t \t \t \t \t]; \t \t \t} еще { \t \t \t \t вар конфиг = [ \t \t \t \t { \t \t \t \t \t "имя": "Пароль", \t \t \t \t \t "BGCOLOR": "", \t \t \t \t \t "color": "", \t \t \t \t \t "Текст": "step3", "позиция" \t \t \t \t \t: "TL", \t \t \t \t \t "Время": 5000 \t \t \t \t} \t \t \t \t ]; \t \t \t} \t \t \t \t, \t \t \t \t \t автовоспроизведение = ложь, \t \t \t \t Showtime, \t \t \t \t \t \t шаг = 0, \t \t \t \t TOTAL_STEPS \t = config.length; попробуйте и скажите, что произойдет? –

0

или, возможно, это:

var config = 
    (page == true) ? 
    [    
     { 
      "name"  : "SiteTitle", 
      "bgcolor" : "", 
      "color"  : "", 
      "position" : "TL", 
      "text"  : "step1", 
      "time"  : 5000 
     }, 
     { 
      "name"  : "Jawal", 
      "bgcolor" : "", 
      "color"  : "", 
      "text"  : "step2", 
      "position" : "BL", 
      "time"  : 5000 
     } 
    : 
     { 
      "name"  : "Password", 
      "bgcolor" : "", 
      "color"  : "", 
      "text"  : "step3", 
      "position" : "TL", 
      "time"  : 5000 
     } 
    ]; 
+0

Нет, он не работает, потому что после того, как в статуте я должен добавить дополнительный код следующим образом: , autoplay = false, showtime, step = 0, total_steps = config. длина; –

+0

вы могли бы просто добавить запятую в конце последней скобки для моего кода выше. –

0

Вы можете сделать это так же (не говоря, что это лучший способ, но это еще один способ и может быть полезно в некоторых сценариях)

let config = []; 
if (page) { 
    config.push({ 
     "name"  : "SiteTitle", 
     "bgcolor" : "", 
     "color"  : "", 
     "position" : "TL", 
     "text"  : "step1", 
     "time"  : 5000 
    }); 
    config.push({ 
     "name"  : "Jawal", 
     "bgcolor" : "", 
     "color"  : "", 
     "text"  : "step2", 
     "position" : "BL", 
     "time"  : 5000 
    }); 
} else { 
    config.push({ 
     "name"  : "Password", 
     "bgcolor" : "", 
     "color"  : "", 
     "text"  : "step3", 
     "position" : "TL", 
     "time"  : 5000 
    }); 
} 
Смежные вопросы