Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js:将此coffeescript转换为jquery_Backbone.js - Fatal编程技术网

Backbone.js:将此coffeescript转换为jquery

Backbone.js:将此coffeescript转换为jquery,backbone.js,Backbone.js,我正在尝试学习如何使用backbone.js。问题是,我正在学习的Railscast教程使用的是coffeescript,而我更喜欢使用jquery。我知道如何将coffeescript中的函数更改为jquery,但我不知道如何更改路由的定义 routes: '': 'index' 我应该用括号括起来吗?警报不起作用,所以我假设路线的定义有问题 这是最初的咖啡剧本 Backboner.Routers.Entries = Backbone.Router.extend

我正在尝试学习如何使用backbone.js。问题是,我正在学习的Railscast教程使用的是coffeescript,而我更喜欢使用jquery。我知道如何将coffeescript中的函数更改为jquery,但我不知道如何更改路由的定义

   routes:
   '': 'index'
我应该用括号括起来吗?警报不起作用,所以我假设路线的定义有问题

这是最初的咖啡剧本

Backboner.Routers.Entries = Backbone.Router.extend


       routes:
       '': 'index'

       index: ->

        alert "homepage"
javascript/jquery

Backboner.Routers.Entries = Backbone.Router.extend({


   routes:
   '': 'index'

   index: function(){

    alert("homepage");
   }
});
更新:我做了建议的更改,但警报没有出现

Javascripts/Backboner.js

window.Backboner = {
  Models: {},
  Collections: {},
  Views: {},
  Routers: {},
  init: function() {
    new Backboner.Routers.Entries();
    Backbone.history.start();
  }
};
Javascripts/routers/entries.js

Backboner.Routers.Entries = Backbone.Router.extend({

   routes: {
   '': 'index'
    },


   index: function(){

    return alert('homepage');
   }
});
第二次更新:

将准备好的文件归档

window.Backboner = {
  Models: {},
  Collections: {},
  Views: {},
  Routers: {},
  init: function() {
    new Backboner.Routers.Entries();
    Backbone.history.start();
  }
};

$(document).ready(function() {
  return Backboner.init();
});
第三次更新

清单文件

//= require jquery
//= require jquery_ujs
//= require underscore
//= require backbone
//= require backboner
//= require_tree ../templates/
//= require_tree .//models
//= require_tree .//collections
//= require_tree .//views
//= require_tree .//routers
//= require_tree .

简短的回答是肯定的,你应该在它周围放上花括号。将来,您可以通过单击Try CoffeeScript将CoffeeScript转换为Javascript。粘贴到CoffeeScript中,您将看到Javascript输出

请记住,CoffeeScript有很大的空白,所以您的原始问题格式不正确。应该是:

Backbone.Routers.Entries = Backbone.Router.extend

       routes:
         '': 'index'

       index: ->

         alert "homepage"
使用CoffeeScript网站提供:

Backbone.Routers.Entries = Backbone.Router.extend({
  routes: {
    '': 'index'
  },
  index: function() {
    return alert("homepage");
  }
});

有时,当我想在两者之间快速来回寻找一个混乱的情况时,我会使用这个工具。。。它至少尝试了自动Javascript->CoffeeScript转换


当然,对于Coffeescript->Javascript,您可以使用Coffeescript网站

谢谢,我做了你建议的更改,但是警报没有出现。我更新了OP。你知道为什么当我导航到索引时警报没有显示吗?你正在调用Backboner.history.start,而不是Backbone.history.startok,我将其更改为Backbone.history.start,但它仍然不起作用。您是否在某处调用Backboner.init?您确定定义Backboner.Routers.Entries的代码在初始化之前已被调用吗?当您在init调用中更新它时,结果是什么?您是否使用Firebug或类似的工具逐步完成了代码?