为什么coffeescript angular demo会在jsfiddle中失败,当一个相同的javascript工作时?

时间:2014-06-10 18:20:20

标签: angularjs coffeescript jsfiddle

我正在coffeescript中构建一个jsfiddle角度应用程序。它失败了,我把失败减少到了这个最小的那个:

<body ng-app="MyApp">
    <div ng-controller="MyController">
        {{text}}
    </div>
</body>

这个javascript小提琴有效:http://jsfiddle.net/nje7H/

var app = angular.module("MyApp", []);

app.controller("MyController", function($scope) {
    $scope.text = "Hello."
});

但是,这个coffeescript小提琴失败了:http://jsfiddle.net/nje7H/1/

app = angular.module "MyApp", []

app.controller "MyController", ($scope) ->
    $scope.text = "Hello."

控制台显示&#34;未捕获错误:无模块:MyApp&#34;

为什么?

1 个答案:

答案 0 :(得分:2)

jsfiddle使用<script type="text/coffeescript">个元素和一个库来编译客户端上的coffeescript,直到dom准备就绪并且代码在角度引导之后才执行。如果您在代码中手动引导角度(fiddle):

,它将起作用
angular.bootstrap document.body, ['MyApp']

在生产环境中,您应该将您的coffeescript编译为浏览器的javascript,这不会有问题。请参阅this question