我有一个主页面,我在按钮点击时打开一个模态窗口。新模态窗口的分配范围与主控制器相同。我的意思是我像这样创造它:
app.module.....{
$scope.modalInstance = null;
$scope.myNumber = null;
$scope.openModal = function(){
modalInstance = $modal.open({
templateUrl: 'template/modal/Modal.html',
size: size,
windowClass: 'small-size-modal',
scope: $scope
});
};
模态窗口显示的所有数据都取自控制器的范围,一切正常。现在还有一个文本框输入来捕获用户的数字。我希望这个数字直接在控制器范围本身上创建,这样我就可以从控制器中访问它。
$scope.submitNumberFromModal = function(){
$scope.doSomething($scope.myNumber);
};
我的模态html输入元素是这样的:
<div class="modal-content">
<input type="text" class="input-box" size="10" ng-model="myNumber"/>
但我发现myNumber是在一个我不知道如何访问的单独范围上创建的。任何帮助都是值得欣赏的。
答案 0 :(得分:0)
$modal.open
创建一个以$scope
为父级的新范围。新范围原型继承自父级,这意味着来自父控制器范围的任何对象(在this
的情况下包括controllerAs
)都可用于绑定值并在父级中使用它和模态范围。
所以它会是
$scope.data = {};
父控制器中的和
<input type="text" class="input-box" size="10" ng-model="data.myNumber"/>
in modal。
但我发现myNumber是在一个单独的范围内创建的 不知道怎么访问。
可以使用modal's own controller访问它,可以使用任何类型的控制器交互(例如events)使其与父控制器通信。