温泉对话框对父范围的访问权限有限
onsen dialog have limited access to parent scope
我正在寻求有关使用 onsen-ui 的对话框组件的帮助。这似乎是一个范围问题。
在我的 HTML 文件中,我有一个如下所示的对话框模板。
<ons-template id="report.html">
<ons-dialog var="dlg" cancelable>
<h1>{{clicked.name}}</h1>
<ons-button onclick="clickButton()">Click</ons-button>
</ons-dialog>
</ons-template>
在我的控制器中,我有
$scope.clickButton = function(){
dlg.hide();
}
$scope.dialogs = {};
$scope.show = function(dlg) {
$scope.clicked = {'name':"bar"};
if (!$scope.dialogs[dlg]) {
ons.createDialog(dlg, {parentScope: $scope}).then(function(dialog) {
$scope.dialogs[dlg] = dialog;
dialog.show();
});
} else {
$scope.dialogs[dlg].show();
}
}
奇怪的是,我可以在对话范围内访问 "clicked",但不能访问 "reportButton",它们在同一范围内,或者至少我可以分辨。
这里是codepenlink
提前致谢!
要从控制器范围调用函数,您应该 ng-click
而不是 onclick
。
<ons-button ng-click="reportButton()">click</ons-button>
我正在寻求有关使用 onsen-ui 的对话框组件的帮助。这似乎是一个范围问题。
在我的 HTML 文件中,我有一个如下所示的对话框模板。
<ons-template id="report.html">
<ons-dialog var="dlg" cancelable>
<h1>{{clicked.name}}</h1>
<ons-button onclick="clickButton()">Click</ons-button>
</ons-dialog>
</ons-template>
在我的控制器中,我有
$scope.clickButton = function(){
dlg.hide();
}
$scope.dialogs = {};
$scope.show = function(dlg) {
$scope.clicked = {'name':"bar"};
if (!$scope.dialogs[dlg]) {
ons.createDialog(dlg, {parentScope: $scope}).then(function(dialog) {
$scope.dialogs[dlg] = dialog;
dialog.show();
});
} else {
$scope.dialogs[dlg].show();
}
}
奇怪的是,我可以在对话范围内访问 "clicked",但不能访问 "reportButton",它们在同一范围内,或者至少我可以分辨。
这里是codepenlink
提前致谢!
要从控制器范围调用函数,您应该 ng-click
而不是 onclick
。
<ons-button ng-click="reportButton()">click</ons-button>