【问题标题】:Angular 1.5 and new Component RouterAngular 1.5 和新的组件路由器
【发布时间】:2015-11-11 14:29:07
【问题描述】:

我正在使用 Angular 1.5 beta 2 和 Angular 2 alpha 45 的新路由器。
我找不到使用 Angular 1 的最新路由器的使用示例。
我可以使用 @RouteConfig 找到 Angular 2 的路由器使用示例。

有人可以解释我将如何配置 angular 1 控制器吗?如果可能的话,还有一个完整的工作示例?

【问题讨论】:

    标签: angularjs angular-new-router


    【解决方案1】:

    更新他们已经停止在这个版本的路由器上工作,并开始使用不同的 API 的版本 3。 As of June 20, 2016 there was no recommended way 将路由器 v3 与 Angular 1 一起使用。我不确定这是否已经改变。下面这个问题和答案与路由器 v2(又名 ComponentRouter)有关。


    过时的 API
    一些站点表明 Angular 1 中的一个组件(用于新路由器的目的)是一个注册为 [name]Controller 的控制器和一个从 component/[name]/[name].html 中提取的模板。现在已经过时了。

    新 API
    这个discussion 包含最近的信息,解释了如何获得最新的 Angular 1 新路由器版本。

    配置中使用的组件映射到使用组件名称注册的指令。看到这个sample

    angular.module('app.home', [])
    .directive('home', function() {
      return {
        template: 'Hello {{ home.text }}',
        controller: function HomeController() {
          this.text = 'World';
        },
        controllerAs: 'home'
      }
    });
    

    Angular 1.5 有一种新的注册组件语法,请参阅here。我用这种语法使用它:

    angular.module('app.home', [])
    .component('home', {
      restrict: "EA",
      template: 'Hello {{ home.text }}',
      controller: function HomeController() {
        this.text = 'World';
      }
      // to configure a child route
      //,$routeConfig: [
      //  { aux: "/son", component: "son", as: "Left" },
      //  { aux: "/daughter", component: "daughter", as: "Left" }]
    });
    

    【讨论】:

    • 我无法正确设置子路由,也找不到带有子路由的工作示例
    • 关于 angular github 的讨论导致了这个带有子路由的演示 plnkr.co/edit/2ZNQzWfspvpmMCLRBOdN?p=preview
    • 效果很好!我有两个额外的要求。您能否添加有关如何将其与路由参数一起使用的信息?还有,如何将它与您提到的组件辅助方法一起使用,该方法现在在 1.5 rc 中可用。
    • 新路由器有更新吗? 1.5 版本发布时没有新路由器。使用路由器的最佳示例是什么?
    【解决方案2】:

    虽然它在这一点上很新,但您也可以将根组件与新的 Angular 路由器一起使用。该组件可以将其他组件作为子组件。

    我按照 Pete Bacon Darwin 的示例来构建一个版本。 https://github.com/petebacondarwin/ng1-component-router-demo

    在他的版本中注意主要组件有 $router.config 在 run 块中传递,并用 3 个点标识子项。

    .run(function($router) {
        $router.config([
        { path: '/...', name: 'App', component: 'app', useAsDefault: true }
        ]);
    

    我正在使用 angular 1.5.0 来关注他的 github。我在发布一些候选版本时遇到了问题。

    【讨论】:

    • 我在 0.1 上发现了这个。我相信他们正在发布 0.3。
    猜你喜欢
    • 2016-09-19
    • 2016-07-25
    • 2016-08-09
    • 2017-01-14
    • 2015-08-01
    • 2017-02-18
    • 1970-01-01
    • 2016-05-05
    • 2016-07-28
    相关资源
    最近更新 更多