9

我正在为此苦苦挣扎。评级是来自 Angular Bootstrap 的指令,我无法控制它,我可以定义一个控制器,并且我正在尝试通过它序列化评级,但是我似乎无法访问父文章。我是 AngularJS 的新手,所以这可能是最愚蠢的问题,但我正在试验$scope.$parent,它确实让我可以访问一个article属性,但是当我这样做时$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>

这是有问题的指令https://github.com/angular-ui/bootstrap/blob/master/src/rating/rating.js,这是我尝试让某些东西起作用的尝试,不会增加太多上下文,但根据要求:

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
  )
4

2 回答 2

1

我需要查看脚本才能更准确地回复,但你说它$scope.parent有一个article属性,但$scope.$parent.article未定义。

如果这不是一个错字,你应该$scope.parent.article改用......

于 2013-09-19T10:03:32.327 回答
0

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

于 2016-04-18T12:50:32.517 回答