我们可以在AngularJS应用程序中使用event.preventDefault()吗?

3
在我的ionic应用程序中,每次加载页面时,它都会加载登录页面,然后转到个人资料页面。我认为如果这样做,我就可以在个人资料控制器中使用它,以便每次我都能看到正在刷新的当前页面。
有没有人能帮我实现这个?
再次,当我使用$state.go("app.profile")或$state.go("app.signup")导航到每个页面时,每次它都会将login.html作为闪屏加载,然后再跳转到请求的页面。
我的要求是,如果我刷新个人资料页面或注册页面,它应该只重新加载当前页面而不是登录页面。
任何帮助都将不胜感激。

Ionic 2使用的是Angular 2,而不是AngularJS。请问您使用的是哪个版本的Ionic? - Suraj Rao
我的 Ionic 应用程序版本是 2.2.1。 - Santosh
Ionic 2使用NavController而不是Angular路由器。你能给一个示例Plunker吗? - Suraj Rao
@SP 去一个页面怎么成为一个事件?preventDefault()是用于DOM事件的。 - Günter Zöchbauer
@suraj 这是我的个人资料控制器代码,除了这个问题,一切都正常。 .controller('ProfileCtrl',function($scope,Auth,$window, $rootScope, $stateParams, $timeout,$interval, $firebaseObject, $firebaseArray, Groups, ionicMaterialMotion,ionicMaterialInk, $ionicPopup,$state) {} - Santosh
显示剩余8条评论
3个回答

2

您只需要将事件传递给函数并从那里处理它,这是最干净和最好的方法:

在您的视图(HTML)中:

<button (click)="clicked($event)">click</button>

在你的JavaScript(TypeScript)中:

clicked(e) {
  e.preventDefault();
  //then do whatever you should do here
}

1
感谢大家,
我的问题已经解决。我在应用程序中进行了两个更改。 按要求使用了preventDefault()。 并且我将$stateProvider更改为$routeProvider。 在app.config中,我添加了以下代码。

  $routeProvider
         .when("/app", {
            // controller: AppCtrl,
        templateUrl: 'templates/menu.html'
    })       .when("/signup", {
        //   controller: SignupCtrl,
        templateUrl: 'templates/signup.html'
    })       .when("/profile", {
       //  controller: ProfileCtrl,
        templateUrl: 'templates/profile.html'
    });


0

在事件处理程序中,您可以只返回false

(click)="onClick($event);false"

或者

(click)="onClick($event)"

onClick(event) {
  event.preventDefault();
  // or
  return false;
}

让我浏览一下。非常感谢! - Santosh
@suraj 谢谢,我没注意到 angular2 标签已经被移除了。 - Günter Zöchbauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接