首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角1.5.3 &类型记录& ngComponentRouter :绑定:{$路由器:‘<’}总是返回未定义的路由器属性

角1.5.3 &类型记录& ngComponentRouter :绑定:{$路由器:‘<’}总是返回未定义的路由器属性
EN

Stack Overflow用户
提问于 2016-03-28 21:39:31
回答 1查看 1.4K关注 0票数 1

我正在使用类型记录和组件控制器类尝试使用角1.5.3的组件路由器,但是我没有将当前的路由器插入到绑定:{$路由器:‘<’}的任何组件中。当我检查$ctrl中的任何铬调试器组件时,它总是显示未定义的。路由本身就像预期的那样工作(组件显示,路由链接工作,$routerOnActivate被调用)。我需要$router从代码中导航。

html页面:

代码语言:javascript
复制
   <div ng-app="app">
        <app></app>
   </div>

密码

代码语言:javascript
复制
class AppCtrl {
}

var appComp: ng.IComponentOptions = {
    template: `App <ng-outlet></ng-outlet>`,
    $routeConfig: [
        { path: '/', name: 'List', component: 'listComp', useAsDefault: true },
        { path: '/new', name:'New', component:'newComp'}
    ],
    bindings: { $router: '<' },
    controller:AppCtrl
};

class ListCtrl {
    message = '';
    $routerOnActivate=() => {
        this.message = 'is activated';
    }
}

var listComp: ng.IComponentOptions = {
    template: `<div><h1>List : {{$ctrl.message}}</h1><a ng-link="['New']">new</a></div>`,
    bindings: { $router: '<' },
    controller: ListCtrl
};

class NewCtrl {
    message = '';
    $routerOnActivate = () => {
        this.message = 'New is activated';
    }
}

var newComp: ng.IComponentOptions = {
    template: `<div><h2>New : {{$ctrl.message}}</h2></div>`,
    bindings: { $router: '<' },
    controller: NewCtrl,
}


angular.module('app', ['ngComponentRouter'])
    .value('$routerRootComponent', 'app')
    .component('app', appComp)
    .component('listComp', listComp)
    .component('newComp', newComp)
    ;
EN

回答 1

Stack Overflow用户

发布于 2016-05-31 16:41:04

好的,我没有足够的声誉来添加评论,所以我必须这样写。我也遇到过同样的问题,并意识到$router在我的“主”应用程序组件中是没有定义的。

因此,我在应用程序入口点组件中使用了$rootRouter,在子组件中使用了“this.$路由器”。这样做是可行的,但我不知道这是预期的行为,还是我做错了什么…

当我在角文档中阅读了以下内容(https://docs.angularjs.org/guide/component-router)时,我找到了这个解决方案:

每个组件都有自己的路由器。与角2不同的是,我们不能使用依赖注入器来获取组件的路由器。我们只能注射$rootRouter。相反,我们使用这样的事实:ng出口指令将当前路由器绑定到组件上的$router属性。

应用程序入口点"< app>< /app>“不在ng插座内,所以它可能与此有关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36271681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档