我创建了一个使用隔离范围的指令。我从视图中传递了一个变量。
指令
function abcDirective() {
return {
restrict: 'AEC',
templateUrl: 'abc.html',
controller: 'ABController as abCtrl',
scope: {
dataSent: '='
}
}
}
观点
<div abc-directive data-sent="{some: Object}"></div>
现在,当我打开Batarang时,我看到了一个带有所有范围元素的ABCtrl对象。并且一个对象具有{some: object}
。我希望这个{some: object}
成为ABCtrl的一部分。我怎么能这样做?
感谢。
答案 0 :(得分:3)
有new feature in 1.3允许您通过指令定义上的bindToController
属性指定。
{
scope: {
dataSent:'='
},
bindToController:true
}
在此之前,您必须手动执行此操作,无论是在链接功能中还是在指令控制器内:
{
//Using the link function
link:function(scope, elem, attrs, ctrl){
ctrl.dataSent = scope.dataSent;
scope.$watch('dataSent', function(){
ctrl.dataSent = scope.dataSent;
});
}
}
//Using the controller
var ABCController = function($scope){
this.dataSent = $scope.dataSent;
$scope.$watch('dataSent', function(){
this.dataSent = $scope.dataSent;
}.bind(this));
}