在指令中使用$ watch

时间:2015-01-12 11:18:54

标签: angularjs coffeescript watch

我的CoffeeScript Angular项目中有一个指令,我想观察/观察一系列联系人。我使用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

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

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

controller: ($scope) ->

1 个答案:

答案 0 :(得分:1)

从指令注入中删除$ scope。

在控制器功能中添加参数。