angularjs - 从 Controller 重定向到ons-template

标签 angularjs onsen-ui

我的页面中有几个ons-templates,每个模板都绑定(bind)到其 Controller ,现在如何在成功的ajax调用后从 Controller first重定向到ons-template secondary.html,下面是我的代码。

<ons-template id="changePass.html">
    <ons-page modifier="shop-details"  class='page_bg'>
        <ons-toolbar style="background-color: #16A500;">
            <div class="left">
                <ons-toolbar-button onclick="menu.setMainPage('userProfile.html', {closeMenu: true}), {animation: 'slide'}">
                    <ons-icon icon="ion-arrow-left-c" size="28px" fixed-width="false"></ons-icon>
                </ons-toolbar-button>
            </div>
            <div class="center">Change Password</div>
        </ons-toolbar>          

        <div ng-controller="userProfile">
            <div ng-show="loading" class="loading"><img src="img/loading.gif" height="50px" width="50px"></div>
            <div class="profile-card">
                <img src="{{profiledata.profile_image_url}}" class="profile-image-settings">
                <div class="profile-name">{{profiledata.firstname}} {{profiledata.lastname}}</div>                                  
            </div><br>
            <div class="form-row">
              <input type="password" id="cpass" class="text-input--underbar width-full" placeholder="Current Password" value="">
            </div>
            <div class="form-row">
              <input type="password" id="npass" class="text-input--underbar width-full" placeholder="New Password" value="">
            </div>
            <div class="form-row">
              <input type="password" id="cnpass" class="text-input--underbar width-full" placeholder="Confirm New Password" value="">
            </div>
            <div class="form-row">
            <p style="font-size: small; color: red;">- Must be between 8 and 16 characters long.<br>
                - Must contain at least 3 of following.<br>
                - English uppercase letter (A to Z).<br>
                - English lowercase letter (a to z).<br>
                - Numerical digit (0 to 9).<br>
                - Special character (#, $, ^, etc.).  </p>
            </div>              
            <ons-bottom-toolbar modifier="transparent">
                <ons-button modifier="large" class="login-button" ng-click="changePass();">Save</ons-button>
            </ons-bottom-toolbar>
        </div>
    </ons-page>
</ons-template>

    $scope.changePass = function (){
    var cpass = document.getElementById('cpass').value;
    var npass = document.getElementById('npass').value;
    var cnpass = document.getElementById('cnpass').value;

    $.ajax({
        type: 'GET',
        url: serviceURL+'account/change_password',
        data: {user_id: user_id, authentication_key: authentication_key, current_password: cpass, new_password: npass, confirm_password: cnpass},
        timeout: 5000,
        success: function (response) {              
            alert(response);
            $scope.loading = false;
            $scope.questions = JSON.parse(response).data;
            $scope.$apply();            
        },      
        error: function (response) {
            $scope.error = true;
            $scope.$apply();
        }
    });
};

因此,当ajax请求成功时,我想重定向到另一个ons-template,比如home.html。

最佳答案

您只需使用pushPage 作为您的导航器即可。最简单的方法是:

document.getElementById('myNavID').pushPage('second.html');

对于 Angular,您可以使用:

myNav.pushPage('second.html');

这里的引用文档有一个工作示例:https://onsen.io/2/reference/ons-navigator.html

关于angularjs - 从 Controller 重定向到ons-template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655050/

相关文章:

android - 使用 Onsen Ui 创建类似 Android 的 Popover

javascript - 为什么我的可搜索过滤列表不起作用?

javascript - 复选框和 JavaScript : Inconsistent click event + selected state

javascript - 为什么表达式与花括号一起打印?

javascript - AngularJS - 在一个 html 标签中切换变量

android - 音频无法在Monaca上播放

cordova - Cordova 上的温泉工具栏

javascript - 将图片设置为 Onsen UI Master-Details 元素

javascript - AngularJS 如何在 setTimeout 后强制更新 DOM

javascript - 如何将多个属性传递到 Angular.js 属性指令中?