Вопрос

Я не могу сделать самые простые директивы работы в моем проекте Angularjs + CoffeeScrip.

У меня есть этот код в директивах. Офис:

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

и в моем шаблоне, когда я делаю

<span app-version></span>
<hello></hello>
. Затем появляется номер версии (0.1), показывающий, что первая директива работает правильно, но тег не заменяется ни на что.

Есть идеи, что я сделал не так?

Я также попробовал это, который тоже не работал:

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

Это было полезно?

Решение

У вас есть опечатка:

restict: 'E'
.

должен быть

restrict: 'E'
.

Рабочий код: http://plnkr.co/edit/8tifs2eyplo4wl7ytk?p=proepiew

Другие советы

Вы также можете написать свою угловую директиву в CoffeeScript, таким образом, что, я думаю, является очистителем:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top