我有一个问题,我如何从控制器获取数据并将其放入另一个控制器的范围内,这是一个模态窗口......
我会解释:
这是我的事件,它打开对话窗口(angular-strap模态):
openDialog () {
this.$modal({
show: true,
html: true,
placement: 'center',
type: 'large',
templateUrl: 'tmpl.html',
controller: myController
});
}
这是我的模态窗口模板(tmpl.html):
<div class="modal-body" id="modal-body">
<my-directive></my-directive>
</div>
当我使用webpack时,我使用main index.js中的指令初始化模块
这是我的指令模板的一个小例子:
<span class="some-name">{{$ctrl.num}} </span>
这是我的另一个控制器:
constructor($scope) {
super($scope);
this.$scope = $scope;
this.num = 10;
}
因此,正如您所看到的那样,跨度中将有10个,我还需要从另一个控制器获取数据,这些控制器存储即数据= [&#39; asd&#39;,&#39; apple&#39; ]。等等
还有更好的办法吗?
答案 0 :(得分:0)
如果我理解你的问题,你可以通过在模态选项中添加范围,将范围从父控制器传递到模态。见下文:
this.$modal({
show: true,
html: true,
placement: 'center',
type: 'large',
templateUrl: 'tmpl.html',
controller: myController,
scope: $scope
});
这就是你要问的一切吗?
答案 1 :(得分:0)
您可以使用resolve
modal
媒体资源
openDialog(){
this.$modal({
show: true,
html: true,
placement: 'center',
type: 'large',
templateUrl: 'tmpl.html',
controller: myController,
resolve : {
objData{
dataFromCtrl : $scope.dataFromAnoterCtrl// you can fetch data here either from parent scope or factory/service.
}
}
});
}
然后在myController
中,您可以获得此数据
.controller('myController',function(objData){
console.log(objData.dataFromCtrl); // you can get data from another controller in this modal controller.
})