如何以角度访问子指令的范围?

时间:2015-03-04 11:00:43

标签: angularjs angularjs-directive

我正在使用controller as语法,并且不确定如何访问子指令的范围。我可以这样做,但必须有一个更好的方法,不是吗?

angular.module('saProducts').directive 'saProductNew', ->
  restrict: 'A'
  templateUrl: 'app/products/templates/new.html'
  controllerAs: 'product'
  controller: ($scope, Product) ->

    @save = ->
      Product.save(product: @current).$promise.then (product) ->
        $scope.$$childHead.images.owner = product # Isn't there a way to access it without going through the $$childHead object?

1 个答案:

答案 0 :(得分:0)

您还可以考虑其他三种解决方案:

  1. 使用服务在父范围和子范围之间共享数据。

  2. 使用emit / broadcast广播从子节点到父节点的更改。

  3. 在父作用域中创建子属性。因此,例如,在父指令中,$ scope.p = {c:“change from”},然后您可以在子范围中访问它,$ scope.pc =“更改为”,现在如果您在父级中访问它,由于原型继承,它将显示为“已更改为”。

  4. 我个人会使用第一个选项,如果它是一个复杂的应用程序,其次是nr 3用于简单的东西,最后是选项nr 2.