我得到了一个指令,其中有一个由属性传递的模型:
使用严格;
angular.module('ebs-front')
.directive('ebsIa', function() {
return{
restrict: 'A'.
scope: {
opened: '=ebsIaOpened',
model: '=ebsIaModel',
cb: '&ebsIaCb'
},
controller: function($scope, $uibModal){
console.log('check');
$scope.text = { text: 'test'};
$scope.$watch('opened', function(newValue) {
if(newValue === true){
var modalInstance = $uibModal.open({
controller: 'ImpactAnalyseController',
templateUrl: 'common/directive/ebs-ia-template.html'
});
}
});
}
}
});
在这个指令中,我需要做一些操作,然后打开一个模态窗口。所以很好,但问题是,我希望在scopeAnalysisController中也可以访问$ scope.model。
我的假设是$ scope.test和$ scope.model将自动在ImpactAnalysisController中可用,但显然创建了一个仅对控制器有效的隔离范围:功能部分。
将范围的模型变量传递给ImpactAnalysisController会有什么好方法?!为什么它不是角度的默认行为?
如果我像下面那样定义我的指令,那么指令中的removeFromFilters(在这种情况下)是可用的,所以我有点困惑。任何帮助将不胜感激......
use strict;
angular.module('ebs-front')
.directive('ebsIa', function() {
return{
restrict: 'A'.
scope: {
opened: '=ebsIaOpened',
model: '=ebsIaModel',
cb: '&ebsIaCb'
},
controller: 'ImpactAnalysisController'
};
)};
答案 0 :(得分:0)
有几种方法可以在Angular中的控制器之间共享数据。想到一对夫妇:
1-使用$ rootScope.broadcast('keyName',value)并使用$ scope.on监听值('keyName',function(){...}谨慎使用,而不是最好的方法时间
2-保留数据不在控制器中但在服务或工厂中,并将其注入控制器(最好)
答案 1 :(得分:0)
将范围的模型变量传递给ImpactAnalysisController的好方法是什么?!
取决于控制器可以访问和打算使用它。
为什么它不是角度的默认行为?
你问的是错误的问题。您选择了隔离范围。如果您想从其父级继承属性,为什么选择隔离范围?
什么可以解决您的问题:
如果您传递的是纯模型,并希望有一些用户可能会改变模型的IO,我建议您阅读并实施:NgModelController
它将通过注射控制器使您的指令可以与模型和机制进行交互,而与您选择的范围类型无关。您所要做的就是根据$compile documentation要求'ngModel'。
答案 2 :(得分:0)
修复了uibmodal的解析功能:
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendFunc(GL20.GL_ZERO, GL20.GL_SRC_COLOR);
batch.setProjectionMatrix(getStage().getCamera().combined);
batch.enableBlending();
batch.setBlendFunction(GL20.GL_ZERO, GL20.GL_SRC_COLOR);
batch.begin();
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendFunc(GL20.GL_ZERO, GL20.GL_SRC_COLOR);
batch.draw(lightBufferRegion,0, 0, getStage().getWidth(), getStage().getHeight());
batch.end();
batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
项目从父作用域传递到ModalInstanceCtrl,并在控制器中作为变量可用。我正在寻找!