我一直在与角度斗争,以至于我需要一些帮助。我想要做的只是包含一个模板,该模板仅在标题上有所不同,在同一个html中有两次(看起来很容易但有角度使得这么难......)我需要这些模板使用相同的范围。 这应该是类似的东西
app.directive('datePickerModal', function(){
return {
restrict: 'E',
controller: 'activityManagementCtrl',
templateUrl: '/templates/date_modal.html',
scope: {
dateTitle: '=title',
modal_id: '=id'
}
}
});
在我的HTML中,它是
<date-picker-modal title="Start Date" id="start"></date-picker-modal>
<date-picker-modal title="Deadline" id="deadline"></date-picker-modal>
我还有一个
的控制器$scope.activties = [**SOME ACTIVITES**];
并将其激活在我的html文件的顶部。问题是当我访问我的范围时,它没有任何活动,也没有任何东西。因此,角度正在创建我的控制器的副本,而不是使用我的。此外,如果我删除“范围:{}”,它使用正确的范围,但现在我无法传递我需要激活模态和东西的信息。有解决方案吗它似乎是我循环,要么我松散额外的信息或活动列表。 谢谢!
答案 0 :(得分:1)
如果你在 1.3 或以上
,则取决于您的角度版本return {
restrict: 'E',
controller: 'activityManagementCtrl',
templateUrl: '/templates/date_modal.html',
transclue: true, // <----------------
scope: {
dateTitle: '=title',
modal_id: '=id'
}
}
您现在可以使用parentScope
访问scope.$parent
了。
答案 1 :(得分:0)
https://plnkr.co/edit/ozAstdiMTfuXD8NKXsUI?p=info
因此,$scope.activties = [**SOME ACTIVITES**];
不在&#39; activityManagementCtrl&#39;?因为它工作正常。您不必使用父控制器中的内容。尝试使它与指令控制器一起使用,因此它可以在以后与其他控制器一起使用,并且更容易让其他人理解。 :)