Domanda

Non riesco a far funzionare le direttive più semplici nel mio progetto AngularJs + CoffeeScript.

Ho questo codice nelle direttive.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>'
.

E nel mio modello, quando faccio

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

Quindi viene visualizzato il numero di versione (0.1), mostrando che la prima direttiva funziona correttamente, ma il tag non viene sostituito da nulla.

Qualche idea cosa ho fatto di sbagliato?

Ho anche provato questo, che non funzionava neanche:

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

È stato utile?

Soluzione

Hai un typo:

restict: 'E'
.

dovrebbe essere

restrict: 'E'
.

Codice di lavoro: http://plnkr.co/edit/8tifps2emyplo4wl7ytk?p=preview

Altri suggerimenti

Puoi anche scrivere la tua direttiva angolare in CoffeeScript come questo che penso sia più pulito:

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)
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top