我认为这不是一个难题,但出了点问题。我是处理onsen UI的新手,我想创建一个对话窗口,我需要一些参数。我不知道为什么它不起作用。这是我的HTML:
<ons-template id="tippDialog">
<ons-dialog var="tippdialog" id="tippdialog" ng-controller="controllerName" cancelable>
<div class="center">
<h3>Tipp abspeichern</h3>
<form action="saveTip.php">
<ons-input id="tippa" type="number" placeholder="TipA" value=""></ons-input>
<ons-input id="tippb" type="number" placeholder="TipB" value=""></ons-input>
<p>{{tip_matchid}}{{userid}}</p>
</form>
<ons-button id="tippspeichern">Speichern</ons-button>
</div>
</ons-dialog>
这就是我在控制器中所做的事情:
$scope.dialogs = {};
$scope.tipDialog = function(match_id){
tip_matchid = match_id;
$scope.tip_matchid = tip_matchid;
$scope.userid = userid;
ons.createDialog("../dialogs/tippDialog.html", $scope).then(function(tippdialog){
$scope.dialogs[tippdialog] = tippdialog;
tippdialog.show();
});
}
在stackoverflow中找到了一些代码,但我找不到任何有用的东西。希望可以有人帮帮我。谢谢!
答案 0 :(得分:1)
有一个解决方案。认为这不是最好的方法,但你可以这样做:
$scope.dialogs = {};
$scope.tipDialog = function(match_id, tipa, tipb){
tip_matchid = match_id;
ons.createDialog("../dialogs/tippDialog.html", $scope).then(function(tippdialog){
tippdialog._scope.tip_matchid = tip_matchid;
tippdialog._scope.userid = userid;
$scope.dialogs[tippdialog] = tippdialog;
tippdialog.show();
});
}
答案 1 :(得分:0)
我想文档可以使用一些改进......
我还没有对它进行过测试,但我认为这是你正在寻找的:
$scope.dialogs = {};
$scope.tipDialog = function(match_id){
$scope.tip_matchid = tip_matchid = match_id;
$scope.userid = userid;
ons.createDialog("../dialogs/tippDialog.html", {parentScope: $scope}).then(function(tippdialog){
$scope.dialogs[tippdialog] = tippdialog;
tippdialog.show();
});
}
重要的部分是{parentScope: $scope}
。
使用当前实现,这是Onsen检查的属性。
它确实ons.$compile(angular.element(element))(options.parentScope.$new())
。
所以基本上你的对话框有你提供的兄弟范围。通过使用{parentScope: $scope}
,它变成了一个子范围,我想这就是你想拥有的。