Javascript 如果需要,如何访问父作用域?

Javascript 如果需要,如何访问父作用域?,javascript,twitter-bootstrap,angularjs,angularjs-directive,angularjs-scope,Javascript,Twitter Bootstrap,Angularjs,Angularjs Directive,Angularjs Scope,我正在努力解决这个问题。Rating是Angular Bootstrap的一个指令,我不控制它,我可以定义一个控制器,我试图通过它序列化Rating,但是我似乎无法访问父文章。我是AngularJS的新手,所以这可能是最愚蠢的问题,但我正在试验$scope.$parent,它在中确实允许我访问文章属性,但当我访问$scope.$parent.article时,它返回未定义,必须有另一种方法 这是有问题的标记: <div class="article full" data-ng-model=

我正在努力解决这个问题。Rating是Angular Bootstrap的一个指令,我不控制它,我可以定义一个控制器,我试图通过它序列化Rating,但是我似乎无法访问父文章。我是AngularJS的新手,所以这可能是最愚蠢的问题,但我正在试验
$scope.$parent
,它在中确实允许我访问
文章
属性,但当我访问
$scope.$parent.article
时,它返回未定义,必须有另一种方法

这是有问题的标记:

<div class="article full" data-ng-model="article">
  <header class="page-header">
    <h4>{{article.title}}</h4>
    <div class="article-rating" rating ng-controller="RatingsCtrl" value="article.rating" max="5"></div>
  </header>
  <!-- ... -->
</div>

我需要查看脚本才能更准确地回答,但是您说,
$scope.parent
具有
article
属性,但是
$scope.$parent.article
未定义


如果这不是输入错误,您应该使用
$scope.parent.article
来代替…

对于我
article
在当前范围内可用,即使它是在父范围内设置的。

请发布您的javascript。我不建议您尝试获取父范围。想想那些会维护你的代码的人。如果需要来自父作用域的任何信息,请传递变量、传递配置对象、传递所有信息。为什么孩子要被父母操纵?好吧,伙计们,但我怎样才能访问控制器中的文章呢?我需要能够监视指令的绑定“值”进行评级,然后通过包含文章id和给定评级来序列化,您将如何做到这一点?您找到解决方案了吗?我现在遇到了这个确切的问题,我不明白为什么我可以访问父作用域,但不能访问其嵌套属性。我的意思是$scope。$parent在这两种情况下。如果我console.log$scope.$parent,我会得到一个包含文章属性的对象转储,如果我扩展它,我可以有效地看到文章的属性,例如body和id,但是当我从任何代码中对它执行$scope.$parent.article时,我会得到一个未定义的响应。我编辑OP是为了避免混淆,它到处都是$scope.$parent,它不起作用。
angular.module("myApp")
  .controller("RatingsCtrl", ($scope) ->
    console.log $scope.$parent.article #=> undefined

    $scope.$watch 'value', (newVal, oldVal) ->
      console.log "newVal = #{newVal} oldVal=#{oldVal}"
      console.log $scope.$parent.article #=> undefined
  )