在指令中使用 $watch

Using $watch in directive

我在我的 CoffeeScript Angular 项目中有一个指令,我想在其中 observe/watch 一组联系人。我正在使用 controllerAs 语法。当我读到 $watch 时,我想我会试一试。这是一些示例代码:

app.directive 'labelSelect', [
  "Label"
  "Contact"
  "$scope"
  (Label, Contact, $scope) ->

  restrict: 'E'
  templateUrl: '/assets/templates/label-select.html'
  controllerAs: 'ls'

  controller: ->

    $scope.$watchCollection "this.contacts", (value) ->
      @somefunciton()

    @somefunction = ->
      console.log 'observer fired'

]

加载网站时,出现以下错误:

Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- labelSelectDirective

我在这里做错了什么?在使用 controller as 语法时,这是使用 $watch 功能的正确方法吗?谢谢!

更新: 解决方案只是不注入 $scope 而是在此处将其用作参数:

controller: ($scope) ->

从指令注入中删除 $scope。

在控制器函数中添加为参数。