Angular JS + CoffeeScript + JSFiddle:代码不能正常工作

时间:2013-07-05 20:01:01

标签: angularjs coffeescript jsfiddle

我今天开始使用CoffeeScript和AngularJS,并注意到没有很多关于如何使用CoffeeScript正确编写AngularJS的文档或示例。我自己的实验似乎没有奏效。作为一个教学上的例外,有人能指出我为什么这个小提琴不起作用?

http://jsfiddle.net/dralexmv/8km8x/4/

它声称未定义InventoryModule。虽然我已在第一行宣布它。

这是HTML:

<div ng-app='InventoryModule' ng-controller='InventoryController'>
<table>
    <tr ng-repeat='item in items'>
        <td>{{item.title}}</td>
        <td>{{item.price | currency}}</td>
    </tr>
</table>

这就是CoffeeScript:

inventoryModule = angular.module 'InventoryModule', []

inventoryModule.factory 'Items', ->
    items = {}
    items.query -> [
        {title: 'Table', price: '5'},
        {title: 'Chair', price: '10'}
    ]
    items

inventoryModule.controller 'InventoryController', ($scope, Items) ->
    $scope.items = Items.query

1 个答案:

答案 0 :(得分:5)

您的代码包含以下内容

items.query -> [{title: 'Hello', price: '5'}]

转换为:

  var items = {};
  items.query(function() { // Items has no method query
    return [{
        title: 'Hello',
        price: '5'
      }];
  });

您的意思是将成员定义为函数,因此它应该是:

items.query = () -> [{title: 'Hello', price: '5'}]

转换为:

  var items = {};

  items.query = function() {
    return [{
        title: 'Hello',
        price: '5'
      }];
  };

你的意思是:)

fiddle