2013-07-05 2 views
2

Сегодня я начал играть с CoffeeScript и AngularJS и заметил, что документация или примеры правильной записи AngularJS с использованием CoffeeScript не существует. Мои собственные эксперименты с ним, похоже, не работают. Как педагогический экстерсис, может кто-нибудь указать мне, почему это скрипка не работает?Угловой JS + CoffeeScript + JSFiddle: код не работает

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 
+0

J Скридей должен добавить его в разметку автоматически при выборе «Угловая» как основа. –

ответ

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)

+1

Я вижу. Синтаксис Tricky CoffeeScript Я до сих пор привык. –

+0

@AlexanderVentura Я рад, что смогу помочь. Если это поможет, я сделал и увидел разработку AngularJS + CoffeeScript, и это очень приятно :) –

+0

Последнее, когда я изменяю '$ scope.items' на' $ scope.items = Items.query', страница все еще делает не разобрать. Почему это? –