2

我正在尝试让 Angular.js 应用程序与 Node.js 一起工作。

目前我在文件中有以下代码MY-PROJECT/public/js/controllers.js

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

如您所见,我使用 require() 来访问模型文件。但似乎在此文件/文件夹中无法访问 require() 函数。

当我访问该页面时,我在控制台中遇到的错误是:

ReferenceError:未定义要求

错误的原因肯定是因为我直接在我的 HTML 文件中包含了这个 controllers.js 文件和脚本标签(所以 Node.js 中的 require() 函数不可用)。

现在我的问题是:如何访问MY-PROJECT/models/waiter.jscontrollers.js 文件中的模型文件(例如 from )?

提前谢谢了!

4

2 回答 2

1

RequireJS看起来有你需要的东西。

于 2012-08-13T23:16:36.123 回答
0

我做错了。因为我正在制作一个“实时应用程序”(这是正确的名称吗?)并使用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' ];

注意:我使用“cats”而不是“waiters”,只是为了让其他人更清楚。

于 2012-08-14T12:22:12.480 回答