Angularjs + CoffeeScript - «Hello World» Директива не работает
-
20-12-2019 - |
Вопрос
Я не могу сделать самые простые директивы работы в моем проекте 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)
. Не связан с StackOverflow