我使用Angular Materials $ mdToast服务,但我在访问父控制器时遇到了一些问题。
我有一个名为CalculationsListController
在这里我有我的$mdToast
实例
$mdToast.show({
templateUrl: 'app/features/settlement/calculations/toast.html',
position: 'top right',
hideDelay: 0,
parent: $document[0].querySelector('#toast-container'),
controllerAs: 'vm',
bindToController: true
});
在模板标记中,我有以下
<md-toast class="error">
<span translate translate-values="{unAllocatedJourneys: vm.unAllocatedJourneys.summary.total}">TOAST_MESSAGE.CALCULATION_REQUEST.UNALLOCATED_JOURNEYS</span>
<md-button ng-click="vm.test()"><span translate>TOAST_MESSAGE.CALCULATION_REQUEST.FIND_OUT_MORE</span></md-button>
</md-toast>
注意 - 我的vm.test()
&amp; vm.unAllocatedJourneys
被定义为我的控制器中的属性
从上面可以看出为什么我可能无法在父控制器上访问我的虚拟机属性?
答案 0 :(得分:1)
我建议使用配置对象上的'locals'字段将值绑定到Toast控制器
$mdToast.show({
templateUrl: 'app/features/settlement/calculations/toast.html',
position: 'top right',
hideDelay: 0,
parent: $document[0].querySelector('#toast-container'),
controller: function() {},
controllerAs: 'vm',
bindToController: true,
locals: {
unAllocatedJourneys: vm.unAllocatedJourneys
}
});
或使用控制器字段来使用现有控制器
$mdToast.show({
templateUrl: 'app/features/settlement/calculations/toast.html',
position: 'top right',
hideDelay: 0,
parent: $document[0].querySelector('#toast-container'),
controllerAs: 'vm',
bindToController: true,
controller: vm
});
答案 1 :(得分:0)
你应该用当前范围打开你的模态:
$mdDialog.show({
scope: $scope
});
其中$ scope,是CalculationsListController的范围