AngularJS + Coffeescript - Directiva 'Hello World' no funciona
-
20-12-2019 - |
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>'
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