2

Node.js で動作する Angular.js アプリケーションを実験しています。

現在、ファイルに以下のコードがありますMY-PROJECT/public/js/controllers.js

function LoginController( $scope )
{
  // fetch waiters
  var Waiter = require( '../models/waiter.js' );
}
LoginController.$inject = ['$scope'];

ご覧のとおり、require() を使用してモデル ファイルにアクセスしています。しかし、このファイル/フォルダーではrequire()関数にアクセスできないようです。

ページにアクセスしたときにコンソールに表示されるエラーは次のとおりです。

ReferenceError: require が定義されていません

エラーの理由は、この controllers.js ファイルをスクリプト タグを使用して HTML ファイルに直接インクルードしているためです (したがって、Node.js の require() 関数は使用できません)。

MY-PROJECT/models/waiter.jsここで私の質問は次のとおりです: controllers.js ファイル内のモデル ファイル (例: から) にアクセスするにはどうすればよいですか?

よろしくお願いします!

4

2 に答える 2

1

RequireJSには必要なものがあるようです。

于 2012-08-13T23:16:36.123 に答える
0

私はそれをすべて間違っていました。' realtime-app '(これは正しい名前ですか?)を作成し、 Socket.ioを使用しているため、動作が異なります。

クライアントコントローラーで、サーバーにメッセージを送信してデータを要求します。サーバーはデータをフェッチしてクライアントに送り返します。

したがって、クライアントでは、サーバーからJSON形式のデータを取得するため、実際にはモデルを必要としません。

これは私がそれを解決した方法であり、他の人に役立つかもしれません:

/**
* Login controller
*/
function LoginController( $scope, socket )
{    
    // listen to server when it sends you the cats
    socket.on( 'here-are-all-the-cats', function ( cats )
    {
        $scope.cats = cats;
    });

    // send message to the server, to request the waiters
    socket.emit( 'i-want-all-the-cats' );
}
WaiterController.$inject = [ '$scope', 'socket' ];

注:他の人にわかりやすくするために、「ウェイター」ではなく「猫」を使用しました。

于 2012-08-14T12:22:12.480 に答える