2014-10-30 87 views
1

指令中score_stats的值始終未定義,並且在父範圍中,stats變量具有正確的值。我究竟做錯了什麼?使用ng-repeat綁定分離範圍的角度指令

我在模板這個代碼(和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

首先,你應該使用一個表達式score_stats屬性:

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

然後在指令的定義,而不是scope_stats scope屬性將成爲camelCase'ed:

scope: { 
    scoreStats: '=' 
} 

所以指令模板您需要更改爲:

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

無變化: score_stats在指令 – user1387717 2014-10-30 18:46:30

+0

中仍未定義。對範圍屬性名稱中的_ _分隔符存在一些混淆。我會建議使用常見的蛇情況來預測結果。查看更新的答案。 – dfsq 2014-10-30 18:57:59

+0

啊,工作!非常感謝你! – user1387717 2014-10-30 19:04:20