Pracuję nad integracją AngularJs w przykładową aplikację Nodejs. Moje kontroler jest w następujący sposób:Angularjs pęka z wyrażeń funkcji coffeescript
UsersCtrl = ($scope, $http) ->
$scope.newUser = {}
$scope.users = [
name: "aloman"
email: "[email protected]"
]
który kompiluje do javascript:
// Generated by CoffeeScript 1.3.3
(function() {
var UsersCtrl;
UsersCtrl = function($scope, $http) {
$scope.newUser = {};
return $scope.users = [
{
name: "aloman",
email: "[email protected]"
}
];
};
}).call(this);
Powyższy kod zrywa z dziennika konsoli:
błędu: Argument 'UsersCtrl' nie jest funkcją, ale niezdefiniowane
Jednak usunięcie anonimowej funkcji owiniętej wokół skompilowanego javascript działa dobrze. Działający kod jest pokazany poniżej.
var UsersCtrl;
Usersctrl = function($scope, $http) {
$scope.newUser = {};
$scope.users = [{
name: "aloman",
email: "[email protected]"
}];
};
Dowolny powód, dla którego mój skompilowany kod nie działa. Mam wrażenie, że ma to związek z zastrzykiem zakresu Angular. Używam angularjs 1.0.1
To jest właściwa droga, aby to zrobić. – btford
Używam 'angular.module ('myModuleName'). Controller ('MyControllerName', ($ scope) ->)' – vansanblch
Chyba będę edytować post z tym, więc ludzie nie są zachęcani do tworzenia zmiennych globalnych (te zepsute testy są złe) –