Angularjs + Coffeescript - Directive 'Hello World' ne fonctionne pas
-
20-12-2019 - |
Question
Je ne peux pas faire les directives les plus simples de travailler dans mon projet Angularjs + Coffeescript.
J'ai ce code dans Directives.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>'
et dans mon modèle, quand je fais
<span app-version></span>
<hello></hello>
Ensuite, le numéro de version apparaît (0.1), indiquant que la première directive fonctionne correctement, mais la balise ne se fait pas remplacer par rien.
Une idée de ce que j'ai mal fait?
J'ai aussi essayé cela, ce qui n'a pas fonctionné non plus:
# Hello world directive
app.directive 'hello', ->
class Habit
constructor: ->
restict: 'E'
template: '<div>Hello World</div>'
La solution
Vous avez une faute de frappe:
restict: 'E'
devrait être
restrict: 'E'
Code de travail: http://plnkr.co/edit/8TIFPS2EMYPLO4WL7YTK?p=Preview
Autres conseils
Vous pouvez également écrire votre directive angulaire à CoffeScript comme celui-ci, qui, à mon avis, est plus propre:
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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow