【问题标题】:a little code confuse me in this gem ---- backbone-bootstrap-rails一个小代码让我在这个 gem 中感到困惑----主干引导导轨
【发布时间】:2012-11-06 12:15:30
【问题描述】:

在 bootstrap.js.coffee 中,有一些代码:

define [], ->
  App =
    Models: {}
    Collections: {}
    Routers: {}
    Helpers: {}
    Views: {
      Posts: {}
      Common: {}
      Sessions: {}
      Tokens: {}
      Passwords: {}
      Confirmations: {}
    }

我不明白为什么“定义”方法在 js 代码中? 而且,在其他代码中,这种“定义”方法无处不在!

assets/javascripts/models/post.js.coffee

define ['backbone', 'bootstrap'], (Backbone, App) ->
  class App.Models.Post extends Backbone.Model
    paramRoot: 'post'
    urlRoot: '/posts'

    defaults:
      title: null
      content: null

我想知道方法---“定义”,方法是做什么的,为什么我找不到方法细节要写在哪里??

谢谢!

【问题讨论】:

    标签: javascript ruby-on-rails gem twitter-bootstrap-rails


    【解决方案1】:

    我不是 JavaScript 人,但我相信这是 RequireJS 的一部分。

    根据the docs,它似乎在定义具有依赖关系的函数:

    如果模块有依赖关系,第一个参数应该是一个数组 依赖名称,第二个参数应该是定义 功能。将调用该函数来定义模块一次 依赖项已加载。该函数应该返回一个对象 定义模块。依赖项将传递给定义 作为函数参数的函数,按与顺序相同的顺序列出 在依赖数组中:

    //my/shirt.js now has some dependencies, a cart and inventory
    //module in the same directory as shirt.js
    define(["./cart", "./inventory"], function(cart, inventory) {
            //return an object to define the "my/shirt" module.
            return {
                color: "blue",
                size: "large",
                addToCart: function() {
                    inventory.decrement(this);
                    cart.add(this);
                }
            }
        }
    );
    

    在本例中,创建了一个 my/shirt 模块。这取决于我的/购物车 和我的/库存。在磁盘上,文件的结构如下:

    • my/cart.js
    • my/inventory.js
    • my/shirt.js

    上面的函数调用指定了两个参数,“cart”和 “存货”。这些是由“./cart”表示的模块和 “./inventory”模块名称。

    在 my/cart 和 my/inventory 模块之前不会调用该函数 已加载,该函数将模块作为“购物车”接收 和“库存”参数。

    明确不鼓励定义全局变量的模块,因此 一个页面中可以同时存在多个版本的模块(参见 高级用法)。此外,函数参数的顺序应该 匹配依赖的顺序。

    函数调用的返回对象定义了“my/shirt” 模块。通过以这种方式定义模块,“my/shirt”不存在 一个全局对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      相关资源
      最近更新 更多