2013-05-07 118 views
5

我正在使用jQuery的移動和backbonejs。 有點卡住骨幹路由與啓用轉換屬性。 任何建議將是偉大的..jquery移動骨幹路由

 define(['jquery'], function ($) { 
     $(document).on("mobileinit", function() { 
      $.mobile.ajaxEnabled = false; 
      $.mobile.linkBindingEnabled = false; 
      $.mobile.hashListeningEnabled = false; 
      $.mobile.pushStateEnabled = false; 
      $.mobile.defaultPageTransition = "slide"; 
    }); 
}); 

但幻燈片過渡犯規作品。


爲路由器的代碼如下

define([ 
'jquery', 
'underscore', 
'backbone', 
'backbone.subroute'], function($, _, Backbone) { 
var AppRouter = Backbone.Router.extend({ 
    routes: { 
     // general routes 
     '': 'defaultAction', 
     'login':'login', 
     'message':'message', 
     'menu': 'mainMenu', 

     // Default 
     '*actions': 'defaultAction' 
    } 
}); 

var initialize = function() { 

     $('.back').live('click', function(event) { 
      event.preventDefault(); 
      window.history.back(); 
      return false; 
     }); 

    var app_router = new AppRouter; 
    app_router.on('route:defaultAction', function(actions) { 
     require(['views/home/register'], function(RegisterView) { 
      // We have no matching route, lets display the home page 
      console.log('At defaultAction'); 
     var registerView = new RegisterView(); 
     registerView.render(); 
      /// this.changePage(loginView, 'slide'); 
     }); 
    }); 

    app_router.on('route:login', function(actions) { 
     require(['views/home/login'], function(LoginView) { 
      // We have no matching route, lets display the home page 
      console.log('At defaultAction'); 
     var loginView = new LoginView(); 
     loginView.render(); 
      /// this.changePage(loginView, 'slide'); 
     }); 
    }); 
    app_router.on('route:mainMenu', function(actions) { 
     require(['views/home/menu'], function(MainMenuView) { 
      console.log('At mainMenu::router'); 
     var mainMenuView = new MainMenuView(); 
     mainMenuView.render(); 
      // this.changePage(mainMenuView, 'slide'); 
}); 
    }); 

,我們可以用它來CAL changePage這裏過渡?

+0

在加載jQuery和加載jQuery-Mobile腳本之前,'mobileinit'函數應該加入''中。並使用'.on'而不是'.live'它已棄用。 – Omar 2013-05-07 14:02:47

+0

@Omar代碼的第一部分是mobileinit函數,不起作用。 – Sameertha 2013-05-08 04:50:12

回答

1

這可以在init.js文件中。

(函數($){

var appRouter = Backbone.Router.extend({ 
      routes: { "": "showActivitiesPage" 
      }, 

      showActivitiesPage: function() {     
       $.mobile.changePage("#activities", { reverse: false, changeHash: false });       
      }   
    }); 

}(jQuery)); 

您可以使用更改頁面,即使哈希聆聽設置爲false JQM /骨幹網不會使用變更頁和哈希路由阻止我們。

看看這個鏈接它有一個例子,都是一個FIEL但你可以分解成控制器,型號,並查看

http://blog.chariotsolutions.com/2011/12/introduction-to-backbonejs-with-jquery.html

在C ontext到上面的例子:

控制器:

(function($){ 
$('#activities').live('pageinit', function(event){ 
    var activitiesListContainer = $('#activities').find(":jqmData(role='content')"), 
     activitiesListView; 
    exercise.initData(); 
    activitiesListView = new exercise.ActivityListView({collection: exercise.activities, viewContainer: activitiesListContainer}); 
    activitiesListView.render(); 
}); 

}(jQuery)); 

型號:

(函數($){

exercise.Activity = Backbone.Model.extend({ 
}); 

exercise.Activities = Backbone.Collection.extend({ 
    model: exercise.Activity, 
    url: "exercise.json" 
}); 

}(jQuery的));

查看:

(function($){ 
exercise.ActivityListView = Backbone.View.extend({ 
     tagName: 'ul', 
     id: 'activities-list', 
     attributes: {"data-role": 'listview'}, 

     initialize: function() { 
      this.template = _.template($('#activity-list-item-template').html()); 
     }, 

     render: function() { 
      var container = this.options.viewContainer, 
       activities = this.collection, 
       template = this.template, 
       listView = $(this.el); 

      $(this.el).empty(); 
      activities.each(function(activity){ 
       listView.append(template(activity.toJSON())); 
      }); 
      container.html($(this.el)); 
      container.trigger('create'); 
      return this; 
     } 
    }); 
}(jQuery)); 

鍛鍊可以是全局變量。

+0

我們如何定義viewPage以showPage功能? – Sameertha 2013-07-15 10:19:33

+0

你的意思是這個頁面的視圖?它可以是一個簡單的頁面,在顯示或頁面顯示事件之前調用其渲染方法,或者在模型成功渲染之後調用其模型。 – Sheetal 2013-07-15 12:04:42

+0

你能幫我看一些視圖的代碼來進入模型或集合 – Sameertha 2013-07-16 03:29:14