Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 升级到Angular 2.0路由策略_Angularjs_Angular Ui Router_Angular - Fatal编程技术网

Angularjs 升级到Angular 2.0路由策略

Angularjs 升级到Angular 2.0路由策略,angularjs,angular-ui-router,angular,Angularjs,Angular Ui Router,Angular,我正在将我的应用程序从Angular 1.X迁移到Angular 2.0,我正在考虑迁移过程中/之后的路由解决方案 我目前正在使用ui路由器,通过resolve传递每条路由的数据 读了一些书后,我偶然发现。据我所知,新路由器中没有resolve。我现在有两个选择: 继续在我的混合ng1-2应用程序中使用我当前的ui路由器(有可能吗?),并通过路由器的解析获取每条路由的数据。行吗 更改路由并使用新的组件路由器。这将使逐步升级更加困难,因为我必须将当前获取的Angular 1.X数据更改为位于每个控

我正在将我的应用程序从Angular 1.X迁移到Angular 2.0,我正在考虑迁移过程中/之后的路由解决方案

我目前正在使用ui路由器,通过
resolve
传递每条路由的数据

读了一些书后,我偶然发现。据我所知,新路由器中没有
resolve
。我现在有两个选择:

  • 继续在我的混合ng1-2应用程序中使用我当前的ui路由器(有可能吗?),并通过路由器的
    解析
    获取每条路由的数据。行吗

  • 更改路由并使用新的
    组件路由器
    。这将使逐步升级更加困难,因为我必须将当前获取的Angular 1.X数据更改为位于每个控制器/指令内,并且我不会让Angular 2的
    @CanActivate
    等待数据解析

  • 哪种选择更好?还有别的选择吗?什么在这里有效


    谢谢

    我在工作中遇到了同样的问题。我尝试了很多东西,但最后我使用了一种服务:

    var data = {
      'foo': 'bar'
    }
    
    export const StateData = {
      data: data
    };
    
    现在,在我的组件顶部,我可以导入服务:

    import { StateData } from '/services/StateService.ts';
    
    然后,我只需执行以下操作即可设置并从服务获取数据:

    StateData.data.foo = "something other than bar"
    
    现在,当您切换路由时,可以在构造函数()或afterViewInit()方法中检索新更新的数据

    *使用StateService的另一个好处是,只需添加以下方法(您可以随意命名),即可在所有组件之间绑定数据:

    您可以通过执行以下操作从dom本身调用此方法:

    {{getStateData('foo')}} --> will print out the value "bar"
    
    现在,如果在另一个组件中更改服务中foo的值,它将在dom中更改,因为每次发生更改时都会调用getStateData(),并且服务在页面加载时只加载一次

    我相信init和afterViewInit方法是他们没有将resolve添加到新路由器的原因,或者他们还没有发布带有它的版本

    我希望这对你有帮助。我不认为使用Angular 1.x+Angular 2.0会很容易,也不会很有趣

    我最近在angular 2.0中重建了我的个人网站。代码是公共的,因此您可以查看它。如果您查看contactCard.ts、contact-card.html和StateService.ts,您可以看到它的作用。以下是回购协议:


    您的新舍利钥匙在回购协议中可见,不知道是否应该公开:)
    {{getStateData('foo')}} --> will print out the value "bar"