我想在backbone.js應用程序中使用iScroll4。我有幾個動態加載的列表,我想在適當的視圖加載後初始化iScroll。不能讓iscroll4玩骨幹看
我想在列表視圖完成加載時調用'new iScroll',但不能爲我的生活找出如何做到這一點。
有沒有人得到這兩個一起工作?是否有一個骨幹視圖的例子,一旦它的元素已經加載,就初始化一個滾動器?
我想在backbone.js應用程序中使用iScroll4。我有幾個動態加載的列表,我想在適當的視圖加載後初始化iScroll。不能讓iscroll4玩骨幹看
我想在列表視圖完成加載時調用'new iScroll',但不能爲我的生活找出如何做到這一點。
有沒有人得到這兩個一起工作?是否有一個骨幹視圖的例子,一旦它的元素已經加載,就初始化一個滾動器?
你是正確的,你必須先加載視圖, 或defenately刷新iscroll在我們的應用之後
,我們通常使用的渲染方法來渲染視圖 並有一個處理的初始化postRender方法像iscroll這些額外的插件
當然你需要一些手工作業完成它,但這是它的要點:
var myView = Backbone.View.extend({
// more functions go here, like initialize and stuff... but I left them out because only render & postRender are important for this topic
// lets say we have a render method like this:
render: function() {
var data = this.collection.toJSON();
this.$el.html(Handlebars.templates['spotlightCarousel.tmpl'](data));
return this;
},
// we added the postRender ourself:
postRender: function() {
var noOfSlides = this.collection.size();
$('#carouselscroller').width(noOfSlides * 320);
this.scroller = new IScroll('carouselwrapper', {
snap: true,
momentum: false,
hScrollbar: false
});
}
});
現在的呼這些方法 我們這樣做我們的視野之外,因爲我們喜歡一些視圖管理器來處理這個 但它歸結爲這個
var col = new myCollection();
var view = new myView({ collection: col });
$('#wrapper').html(view.render().$el); // this chaining is only possible due to the render function returning the whole view again.
// here we always test if the view has a postRender function... if so, we call it
if (view.postRender) {
view.postRender();
}
我無法在我的應用程序中加載iscroll。我使用主幹,下劃線並需要js。我有這個代碼。 var scroller = new iScroll('itemcontainer');它說iScroll不是一個構造函數。有任何想法嗎? – jongbanaag 2012-04-03 02:39:28
加載內容之前的觀點你就不能初始化iScroll?如果我沒有弄錯,我相信iScroll會附加到父元素上,所以添加的任何數據都會滾動。 – Jlange 2012-03-12 20:58:27
當我這樣做時,我得到這個奇怪的「橡皮筋」效果,其中列表稍微移動,但不會滾動。我相信它需要首先加載,以便庫知道元素的高度。或者,或者我沒有正確初始化視圖中的iScroll。我找不到如何做到這一點的在線示例。 – user1265102 2012-03-12 23:45:44
我明白了。閱讀完iScroll文檔後,似乎需要在初始化時設置寬度和高度。如果你問我,那麼這個插件就會變得不那麼有用。 Sander的解決方案似乎是唯一的方法,(在視圖加載時設置回調,然後初始化iScroll)。 – Jlange 2012-03-13 17:36:41