私はこれに何時間も立ち往生しています-誰か助けてくれますか?
ネストされたディレクティブのリストがあり、これを ng-repeat で繰り返しています。これらのディレクティブのテンプレートはかなり分厚いので、それらを個別の HTML ファイルにモジュール化し、templateUrl を介してロードしましたが、これはデータ バインディングを壊しているようです。
ここで問題を再現しました: http://plnkr.co/edit/72HUb0vhtpYWuRHnlq3b?p=preview
HTML:
<div project-ext ng-repeat="project in projects"></div>
project.html
{{project.name}} <button ng-click="projects.splice($index,1)">-</button><br>
<div schedule-ext ng-repeat="schedule in project.schedules"></div>
スケジュール.html
{{schedule.name}}<button ng-click="remove($index)">-</button>
JS:
app.directive('projectExt', function() {
return {
templateUrl: 'project.html'
};
});
app.directive('scheduleExt', function() {
return {
templateUrl: 'schedule.html',
link: function(scope) {
scope.remove = function(i) {
scope.$parent.project.schedules.splice(i,1)
};
}
};
});
ディレクティブの構成をテンプレートから templateUrl に変更しただけなのに、2 番目のリストで削除ボタンが機能しない理由を誰か教えてもらえますか?