2

リモートサーバーへの json リクエストを実行するサービスを設定しようとしています。

私は自分のservices.coffeeスクリプト内でこのコードを使用しています:

HttpService = () ->

  initialize: -> 
    __Model.List.destroyAll()
    __Model.Item.destroyAll()

    $$.get 'http://localhost:3000/lists.json', null, ((response) ->
      lists = response.lists
      items = response.items

      $$.each lists, (i, list) ->
        __Model.List.create list

      $$.each items, (i, item) ->
        __Model.Item.create item
    ), 'json'

  createList: (list) ->
    $$.post 'http://localhost:3000/lists.json', list, ((response) ->
      ), 'json'

http = new HttpService
http.initialize()

初期化メソッドは正常に機能します。

私が望むのはhttp、プロジェクトのどこからでも変数にアクセスできることです。

ただし、このファイルの外にある関数にはアクセスできません。

グローバルに定義するにはどうすればよいですか?

アップデート

これはCoffeeScriptによって生成されたファイルです

// Generated by CoffeeScript 1.6.3
(function() {
  var HttpService, http;

  HttpService = function() {
    return {
      initialize: function() {
        __Model.List.destroyAll();
        __Model.Item.destroyAll();
        return $$.get('http://localhost:3000/lists.json', null, (function(response) {
          var items, lists;
          lists = response.lists;
          items = response.items;
          $$.each(lists, function(i, list) {
            return __Model.List.create(list);
          });
          return $$.each(items, function(i, item) {
            return __Model.Item.create(item);
          });
        }), 'json');
      },
      createList: function(list) {
        return $$.post('http://localhost:3000/lists.json', list, (function(response) {}), 'json');
      }
    };
  };

  http = new HttpService;

  http.initialize();

}).call(this);
4

2 に答える 2

3

これにより、ブラウザのコンテキストで変数がグローバルになります。

window.http = http
于 2013-07-17T17:51:29.533 に答える