【发布时间】:2014-12-18 16:43:22
【问题描述】:
我在将参数从一个对象共享到另一个对象时遇到问题 我有一个带有选项的 LatestVideos 对象,我的视频画廊和其他具有分页、渲染、类别和 LocalStorage 方法的对象,女巫手举所有功能,但我使用这个很多,我需要这个作为单独的对象
(function (window, document, none) {
"use strict";
var LatestVideos = window.LatestVideos = function (option) {
/* object to init puglin data JSON FORMAT keys Jsondata or url , container,
actual page wrapper on paggination, number of item per page, categorywrapper*/
this.fragments = document.createDocumentFragment();
this.categories = ["Favorite"];
this.statusLoad = 0;
this.allid = [];
this.categoryid = [];
this.actual = [];
//this.categoryChecked=[];
this.page = 0;
loadJSON(option.url,this.initData.bind(this));
this.settings = { /// init data from options object from parameter constructor
JsonData :option.data || 0,
container : option.container,
actpage : option.actpage || 1,
buttonwrapper : option.paginationwrapper,
categorywrapper : option.categorywrapper,
itemperpage : option.itemperpage, // get value from prev Selection or default
};
};
LatestVideos.prototype.initData = function (data) { // assinchrounous call json with ajax
this.settings.JsonData = data;
this.settings.lengthData = data.length;
Render.setData(this);
Render.getCategories();
};
var Render = { // need this data from LASTESTVIDEOS data,conteiner,paginationwrapper,categorywrapper
/// object with method to render articles to my website
};
var Pagination = function(){
// from LASTESTVIDEOS I need JsonData, actPage overide page and paginatorwrapper
// object with method to calculate number of pages and paginate my articles
};
var Cateogry = function(){
// from LASTESTVIDEOS categoryid change actual and allid
// object with method to changeCategory and get category from data atribut
};
var LocalStoraget = function (){
// I JSON data from LASTESTVIDEOS
// object with method to getFavorite item form localstorage and add to localstorage
};
})(window, document);
function loadJSON(url, callback) {
/* function to load ajax from url input(url- form and callback function),
output function call and post (ARRAY JSON OBJECTS)*/
var xmlhttp =0;
if (typeof XMLHttpRequest !== 'undefined') {
xmlhttp = new XMLHttpRequest();
} else {
var versions = ["Microsoft.XmlHttp",
"MSXML2.XmlHttp",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.5.0"];
var len = versions.length;
for (var i = 0; i < len; i++) {
try {
xmlhttp = new ActiveXObject(versions[i]);
break;
}
catch(e){}
}
}
xmlhttp.onreadystatechange = ensureReadiness;
function ensureReadiness(){
if (xmlhttp.readyState === 4 && xmlhttp.status === 200)
{
JSONObject = JSON.parse(xmlhttp.responseText);
callback (JSONObject);
}else{
return;
}
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
var options = {url:"someURL",container:"videox",paginationwrapper:"pages"};
var opp = new LatestVideos(options);
这是一个插件,我需要使用不同的选项创建 xtimes,有时我需要单独渲染或分页对象或本地存储
【问题讨论】:
-
有什么问题?
-
我现在不知道如何从该对象获取数据并为每个 config/lastestVideos 实例创建分页和类别实例,并对用户更改页面做出反应我必须在调用渲染对象后更改 lastestvideos 中的行为页面渲染新视频的方法以及如何为同一实例共享此数据
标签: javascript methods javascript-objects prototype-programming