[英]Partially isolated scope angular
我有我想包括在页面上多次 指令 。
我也想从父控制器控制此指令。
举个例子,该伪指令是一个模态,其中包含有一个被包含的部分。 该部分具有发送消息的形式。
我想指示该表单从我的父控制器执行什么操作,但是当我隔离范围时(这样我每页可以有多个这些指令之一),我将无法再访问angular创建的表单对象。
我愿意接受建议
<page controller="pageCtrl">
<modal partial="/path/to/partial1"></modal>
<modal partial="/path/to/partial2"></modal>
</page>
partial1.html
<form name="formName1"></form>
partial2.html
<form name="formName1"></form>
app.directive('modal', function(){
return {
restrict: 'AE',
transclude: true,
replace: true,
scope:true,
templateUrl: '/path/to/modal.html',
link:function($scope, elem, attrs){
$http.get(attrs.partial, { cache: $templateCache })
.success(function(response) {
element.find('[ng-transclude]').append(response);
$compile(element.find('[ng-transclude]').contents())($scope);
});
}
}
});
app.controler('pageCtrl', function(){
$scope.submitForm1 = function(data){
if($scope.formName1.$valid){
//DO SOMETHING
}
}
})
好的,所以在输入全部内容后,我意识到该怎么做。
我的目标是隔离指令的范围,而不是隔离内部表单的范围。
因此,我要做的就是更改我所包含的表单/模式内容的编译范围;
$compile(element.find('[ng-transclude]').contents())($scope.$parent);
代替;
$compile(element.find('[ng-transclude]').contents())($scope);
不管怎么说,还是要谢谢你
-詹姆斯·哈灵顿
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.