这已经困扰了我多年,但我无法弄清楚如何以编程方式更改离子切换值。
我的切换按开始。当有人将其滑下时,我会弹出确认信息。如果他们取消确认,我想将切换重置回原来的位置:
<ion-toggle ng-model="twitterConnection" ng-change="twitterConnectionChange()">Twitter</ion-toggle>
$ionicPopup.confirm({
title: 'Are you sure?',
template: 'Are you sure you want to disconnect this account?'
}).then(function(res) {
if(res) {
delete $window.localStorage.twitterToken;
delete $rootScope.user.twitterID;
}
else {
$scope.twitterConnection = true;
}
});
我试过包装$ scope.twitterConnection = true;在$ apply中行,但这会给出“正在进行的摘要”错误。我试过在$ timeout中包装它,但没有任何反应。我是一个相对初学者,所以所有的帮助表示感谢,谢谢!
编辑:这是一个代码:http://codepen.io/Shiftlemac/pen/pjZRbP
答案 0 :(得分:0)
我建议您这样做,如下:
创建函数,该函数将负责更改切换的值。
所以,在你的情况下,它将是:
$ionicPopup.confirm({
title: 'Are you sure?',
template: 'Are you sure you want to disconnect this account?'
}).then(function(res) {
if(res) {
delete $window.localStorage.twitterToken;
delete $rootScope.user.twitterID;
$scope.twitterConnectionToggleOn();
}
else {
$scope.twitterConnectionToggleOff();
}
});
和
$scope.twitterConnectionToggleOff = function(){
$scope.twitterConnection = false;
}
$scope.twitterConnectionToggleOn = function(){
$scope.twitterConnection = true;
}
答案 1 :(得分:0)
由离子论坛提供答案:
基本上我需要使用离子切换的ng-checked属性,并根据这种绅士的代码来设置twitterConnection变量作为对象:http://codepen.io/DaDanny/pen/xwJdLr
<ion-toggle ng-model="twitterConnection.checked" ng-change="twitterConnectionChange()" ng-checked="twitterConnection.checked">Twitter</ion-toggle>
$scope.twitterConnection = {
checked: true,
text: 'Twitter' }
答案 2 :(得分:0)
首先更新组件的状态,如$ scope.twitterConnection = true;或$ scope.twitterConnection = false;最终运行$ scope。$ apply();完成
抱歉,我的英文不好