我正在努力将AngularJs集成到一个示例Nodejs应用程序中。我的控制器如下:
UsersCtrl = ($scope, $http) ->
$scope.newUser = {}
$scope.users = [
name: "aloman"
email: "aloman@example.com"
]
编译成javascript:
// Generated by CoffeeScript 1.3.3
(function() {
var UsersCtrl;
UsersCtrl = function($scope, $http) {
$scope.newUser = {};
return $scope.users = [
{
name: "aloman",
email: "aloman@example.com"
}
];
};
}).call(this);
上面的代码打破了控制台日志:
错误:参数'UsersCtrl'不是函数,未定义
然而,删除编译的javascript周围的匿名函数工作正常。 工作代码如下所示。
var UsersCtrl;
Usersctrl = function($scope, $http) {
$scope.newUser = {};
$scope.users = [{
name: "aloman",
email: "aloman@example.com"
}];
};
我编译的代码无效的原因。我有一种感觉它与Angular的示波器注入有关。我正在使用AngularJS 1.0.1
答案 0 :(得分:38)
最好使用这种语法,这样就不会污染全局范围:
angular.module('myApp').controller('MyController', ($scope) ->)
答案 1 :(得分:0)
尽管目前所有答案都是正确的,但仍有第三种选择:
当您将CoffeeScript编译为JavaScript时,请确保将--bare
选项设置为CoffeeScript编译器,这使得他省略了输出中的函数包装器。