Angular指令使用ng-repeat绑定隔离范围

时间:2014-10-30 18:40:23

标签: angularjs angularjs-directive angularjs-scope

指令中score_stats的值始终未定义,而在父作用域中,stats变量具有正确的值。我做错了什么?

我在模板中有这个代码(而fixtures_stats是一个数组):

div(ng-repeat="stats in fixture_stats")
  scenario-analysis(score_stats="stats")

该指令中的代码:

{                                                                    
  templateUrl: '/' + appVersion + '/directives/scenario-analysis.html',                                                                                                                                              
  scope:{
      score_stats:'=score_stats'
  },
  controller: function($scope, $element, $attrs) {
      console.log('directive $scope.score_stats: ' + $scope.score_stats +
                  ', $scope.$parent.stats: ' + $scope.$parent.stats);
  },                                                                               
};

指令模板中的此代码:

h3 Scenarios for {{ score_stats.score1 }}-{{ score_stats.score2 }} score combo

在控制台中我得到:

directive $scope.score_stats: undefined, $scope.$parent.stats: [object Object]
directive $scope.score_stats: undefined, $scope.$parent.stats: [object Object]

1 个答案:

答案 0 :(得分:1)

首先,您应该使用score_stats属性的表达式:

div(ng-repeat="stats in fixture_stats")
  scenario-analysis(score_stats="stats")

然后在指令定义而不是scope_stats范围属性将成为camelCase' ed:

scope: {
    scoreStats: '='
}

所以在指令模板中你需要改为:

Scenarios for {{ scoreStats.score1 }}-{{ scoreStats.score2 }} score combo