GVKun编程网logo

angularjs – 在IE8中多次调用$routeChangeStart(angularjs controller)

8

对于angularjs–在IE8中多次调用$routeChangeStart感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍angularjscontroller,并为您提供关于$locatio

对于angularjs – 在IE8中多次调用$routeChangeStart感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍angularjs controller,并为您提供关于$ locationChangeStart,$ routeChangeStart和$ stateChangeStart之间的区别、angular-ui-router – 在StateChangeStart中不可用的Angular UI Router state.go参数、angular2 $routeChangeStart,$routeChangeSuccess,$routeChangeError、AngularJS $routeChangeSuccess回调参数的有用信息。

本文目录一览:

angularjs – 在IE8中多次调用$routeChangeStart(angularjs controller)

angularjs – 在IE8中多次调用$routeChangeStart(angularjs controller)

我们正在为我们的应用程序支持IE8浏览器.最近我们将角度版本从1.0.8升级到1.2.16

使用较新版本的应用程序适用于所有浏览器,但我们在IE8中看到了ngRoute的问题.

它多次广播“$routeChangeStart”.

$rootScope.$on(“$routeChangeStart”,(event:ng.IAngularEvent,next,current)=> {

});

为了识别我在上面的代码中添加了console.log,它只在IE8中被调用了两次.

在角度版本1.0.8中,相同的代码片段在浏览器控制台中提供一次console.log注释.

IE8的ngRoute(角度版本1.2.16)有问题吗?

解决方法

你可以搜索你的项目,这样你在任何文件中都没有任何$route.reload()吗?这将使应用程序调用$routeChangeStart 2次.

$ locationChangeStart,$ routeChangeStart和$ stateChangeStart之间的区别

$ locationChangeStart,$ routeChangeStart和$ stateChangeStart之间的区别

我不知道什么是这三个不同,与其相应的$locationChangeSuccess$routeChangeSuccess$stateChangeSuccess

angular-ui-router – 在StateChangeStart中不可用的Angular UI Router state.go参数

angular-ui-router – 在StateChangeStart中不可用的Angular UI Router state.go参数

我正在使用Angular UI路由器,我需要使用state.go方法发送参数.像这样:
$state.go('myState',{ redirect : true });

我还需要在事件stateChangeStart中检查该参数.像这样:

$rootScope.$on('$stateChangeStart',function (event,toState,toParams,fromState,fromParams) {
    //redirect parameter is not available here.
    //should be in toParams right?
}

编辑:这是我的statedeFinition:

$stateProvider.state('customer.search',{
        url: '/search',views: {
            "right-flyover@": {
                templateUrl: 'customer/search/search.tpl.html',controller: 'CustomerSearchCtrl'
            }
        },data: {
            pageTitle: 'Sök användare',hidden: true
        }
    });
ui-router将传递为状态层次结构定义的参数 – 我们正在导航到.请检查:

URL Parameters(引用:)

通常,URL具有动态部分,称为参数.有几个选项可用于指定参数.基本参数如下所示:

$stateProvider
    .state('contacts.detail',{
        url: "/contacts/:contactId",templateUrl: 'contacts.detail.html',controller: function ($stateParams) {
            // If we got here from a url of /contacts/42
            expect($stateParams).toBe({contactId: 42});
        }
    })

因此,如果您想使用param重定向,您的状态应如下所示:

$stateProvider.state('customer.search',{
    url: '/search/:redirect',...        
});

然后我们可以使用:

$state.go('customer.search',{ redirect : true });

这将是$statePrams的一部分

但也许您尝试使用已发送的选项,而不是参数:

> $state.go(to [,toParams] [,options])(引用:)

选项

Object – If Object is passed,object is an options hash. The following options are supported:

> location布尔值或“替换”(默认为true),如果为true将更新位置栏中的URL,如果为false则不会.如果字符串“replace”,将更新url并替换上一个历史记录.
> inherit Boolean(默认为true),如果为true,则从当前url继承url参数.
> relative stateObject(默认$state.$current),当使用相对路径(例如’^’)进行转换时,定义哪个状态是相对的.
> notify Boolean(默认为true),如果为true将广播$stateChangeStart和$stateChangeSuccess事件.
> reload v0.2.5布尔值(默认值为false),则强制转换,即使状态或参数没有改变,也就是重新加载相同的状态.它与reloadOnSearch不同,因为当你想在一切都相同时强制重新加载时你会使用它,包括搜索参数.

那将是第三个参数(重新加载而不是重定向):

$state.go('myState',null,{ reload: true });

angular2 $routeChangeStart,$routeChangeSuccess,$routeChangeError

angular2 $routeChangeStart,$routeChangeSuccess,$routeChangeError

在angular2中,这些angular1事件的等价物是什么?

$routeChangeStart,$routeChangeSuccess,$routeChangeError

我想在root app组件中使用这些事件来处理任何路由更改.

提前致谢

更新

>如果我使用OnActivate,OnDeactivate事件,则需要将其添加到每个组件:(
>此外,我试图实现我自己的RouterOutlet但我无法访问以前关于激活,停用事件的指令,我也不知道如何处理路由更改错误
>此外,router.subscribe只给了我名字,但我想让当前和下一个指令对象改变一些属性

我的目标是:

1-开始更改页面时显示加载指示符并在页面加载时隐藏它.

2-为当前和下一条指令制作过渡动画rtl或ltr

解决方法

有一些事件,如OnActivate,OnDeactivate和保护功能CanActivate和CanDeactivate,你可以看看.

请参阅Router的文档

AngularJS $routeChangeSuccess回调参数

AngularJS $routeChangeSuccess回调参数

我是AngularJS的新手,并且有关于事件监听器的文档感到困惑.

该文档列出了$routeChangeSuccess事件的以下内容:

$routeChangeSuccess broadcasted after a route dependencies are
resolved. ngView listens for the directive to instantiate the
controller and render the view.

Type:

broadcast Target:

root scope

但是,它没有引用传递给回调函数的任何参数.然而,我在这里看到的大多数示例都有类似的回调函数列表:

$rootScope.$on("$routeChangeSuccess",function(event,next,current) {
   ...
});

根据AngularJS文档,所有回调都有第一个参数作为事件.我明白了.但是下一个和现在来自哪里?在任何文件中列出了哪些?

它的文件记载在版本少于1.2,看到这个 old documentation.但似乎他们没有注意到他们的广播事件的回调签名丢失.另一方面,如果您不介意从他们的github资源库中读取,可以查看此 line here的$routeChangeSuccess回调参数.

更新:
对于Route对象,实际上可以参考$route属性documented here.

关于angularjs – 在IE8中多次调用$routeChangeStartangularjs controller的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于$ locationChangeStart,$ routeChangeStart和$ stateChangeStart之间的区别、angular-ui-router – 在StateChangeStart中不可用的Angular UI Router state.go参数、angular2 $routeChangeStart,$routeChangeSuccess,$routeChangeError、AngularJS $routeChangeSuccess回调参数等相关内容,可以在本站寻找。

本文标签: