2014-10-09 102 views
0

有没有办法从JSON文件中获得随机值?我的JSON含有大量的基于相同的音乐艺术家的内容,所以我想更多的随机显示的数据,并添加一个节目之后更多按钮...HandlebarsJS如何从JSON获得随机值

所以我的JSON看起来是这样的:

[ 
    data: [{ 
    "name" : "rihanna", 
    "song" : "pour it up" 
    }, 
    { 
     "name" : "rihanna" 
     "song" : "diamonds" 
    }, 
    { 
     "name" : "ladygaga" 
     "song" : "lovegame" 
    }, 
    { 
     "name" : "ladygaga" 
     "song" : "lovegame" 
    }, 
    { 
     "name" : "ladygaga" 
     "song" : "pokerface" 
    }, 
    { 
     "name" : "ladygaga" 
     "song" : "alejandro" 
    }, 
    { 
     "name" : "fergie" 
     "song" : "fergalicious" 
    }, 
    { 
     "name" : "fergie" 
     "song" : "clumsy" 
    }, 
    etc etc 

那么,有没有办法做到这一点?

回答

1

试试这个:)

var random = Math.floor(Math.random() * jsonObject.length); 
var rData = jsonObject[random]; 

附: :其中jsonObject是您的数据属性。

0

这里是你如何实现它。 PLUNKER

$(document).ready(function() { 

    $('button').on('click', function() { 
     getRandom(); 
     var html = template(context); 
     $('#artistlist').html(html); 
    }); 

    var source = $("#entry-template").html(); 
    var template = Handlebars.compile(source); 

    var musicArray = [{ 
     "name": "rihanna", 
     "song": "pour it up" 
    }, { 
     "name": "rihanna", 
     "song": "diamonds" 
    }, { 
     "name": "ladygaga", 
     "song": "lovegame" 
    }, { 
     "name": "ladygaga", 
     "song": "lovegame" 
    }, { 
     "name": "ladygaga", 
     "song": "pokerface" 
    }, { 
     "name": "ladygaga", 
     "song": "alejandro" 
    }, { 
     "name": "fergie", 
     "song": "fergalicious" 
    }, { 
     "name": "fergie", 
     "song": "clumsy" 
    }]; 


    var context = { 
     music: [] 
    }; 

    var musicClone = $.extend(true, [], musicArray); 

    function getRandom() { 
     var i = 2; 
     while (i-- && musicClone.length >= 1) { 
      var random = Math.floor(Math.random() * musicClone.length); 
      var data = musicClone[random]; 
      context.music.push(data); 
      musicClone.splice(random, 1); 
     } 
    } 

}); 
+0

这就是很不错的!好吧,我必须将它添加到注册助手中吗?如果是这样,我该如何获取注册助手中的json? – Steve 2014-10-09 10:01:59

+0

无需注册助手。 – 2014-10-09 10:09:13