Pregunta

No puedo hacer que las directivas más simples funcionen en mi proyecto AngularJS + Coffeescript.

Tengo este código en las directivas.coffee:

'use strict'
app_name = "myApp"
app = angular.module "#{app_name}.directives", []

# Directive to include the version number of my project
app.directive 'appVersion', [
'version', (version) ->
    (scope, element, attrs) ->
    element.text version
]

# Hello world directive
app.directive 'hello', () ->
    restict: 'E'
    template: '<div>Hello World</div>'

y en mi plantilla, cuando hago

<span app-version></span>
<hello></hello>

Aparece el número de versión (0.1), lo que muestra que la primera directiva funciona correctamente, pero la etiqueta no se reemplaza por nada.

¿Alguna idea de lo que hice mal?

También probé esto, que no funcionó tampoco:

# Hello world directive
app.directive 'hello', ->
    class Habit
        constructor: ->
            restict: 'E'
            template: '<div>Hello World</div>'

¿Fue útil?

Solución

TIENE UN TIPO:

restict: 'E'

debe ser

restrict: 'E'

Código de trabajo: http://plnkr.co/edit/8tifps2emyplo4wl7ytk?p=preview

Otros consejos

También puede escribir su directiva angular en Coffeescript como este que creo que es más limpio:

class MyDirective
    constructor: (myService) ->
        // Constructor stuff
        @controller = MyController
        @controllerAs = 'ctrl'
    restrict: 'E'
    replace: true
    scope:
        attributeStuff: '='
    link: (scope, element, attr) ->

angular.module('my_module').directive 'MyDirective', (myService) ->
    new MyDirective(myService)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top