angular 为select赋值时为啥不会触发ng-change

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular 为select赋值时为啥不会触发ng-change相关的知识,希望对你有一定的参考价值。

好奇你那么写能生成option选项么?我照你的写法测试根本没选项矮 $scope.selectValue = 某个id来设置默认选项 http://zhidao.baidu.com/question/561846503790127724 以前回答的一个关于select的。 参考技术A 跟一般的html一样啊
<select>
<option ng-repeat=i in arr></option>
</select>
这样 你是问这个吗看本回答被提问者采纳

为啥路由保护 canLoad 不会触发,但 canActivate 会

【中文标题】为啥路由保护 canLoad 不会触发,但 canActivate 会【英文标题】:Why does route guard canLoad not fire, but canActivate does为什么路由保护 canLoad 不会触发,但 canActivate 会 【发布时间】:2017-02-21 23:53:57 【问题描述】:

我有一个 Angular 2.0.1(最终版)应用程序,它使用 HashLocationStrategy 作为路线导航策略。

我将我的一条路线定义如下:

     
    path: 'shiftmanage', component: ShiftManageComponent,
    canLoad: [AuthGuard],
    canActivate: [AuthGuard] 
    ,

这里是 AuthGuard 类:

    import  Injectable            from '@angular/core';
    import  
        Route, 
        Router, 
        CanLoad, 
        CanActivate,
        ActivatedRouteSnapshot, 
        RouterStateSnapshot        from '@angular/router';

    @Injectable()
    export class AuthGuard implements CanLoad, CanActivate 
        constructor(private router: Router) 
            console.log("AuthGuard constructor")
        

        canLoad(route: Route): boolean 
            if (route.path === "shifts") 
                return true;
             else 
                return false;
                    
        

        canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean 
            if (route.routeConfig.path === "shiftmanage") 
                return true;
             else 
                return false;
            
        
    

然后我将这个守卫类添加到 NgModule Providers 中,如下所示:

providers: [
    AuthGuard,
     provide: LocationStrategy, useClass: HashLocationStrategy 
    ... other providers
]

导航正常工作,每当我尝试导航到 shiftmanage 路径时,都会触发 canActivate 路由保护。

问题: canLoad 路由守卫永远不会被击中。

问题:

这个 canLoad 守卫没有因为 HashLocationStrategy 被击中,还是我做错了什么?

【问题讨论】:

【参考方案1】:

canLoad用于加载lazy-loaded modules和loadChildren


  path: 'child',
  canLoad: [AuthGuard],
  loadChildren: 'path/to/child.module'

【讨论】:

好的,在仔细阅读链接的文档之后,这是有道理的,谢谢

以上是关于angular 为select赋值时为啥不会触发ng-change的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Angular 2 ngOnChanges 不响应输入数组推送

ionic 上拉刷新为啥自动触发

为啥路由保护 canLoad 不会触发,但 canActivate 会

为啥即使 objectEquality 设置为 true,$watch 也不会触发?

我正在使用点击事件触发CSS动画,为啥再次点击时动画不会再次运行?

在 Angular 4 中,钩子 ngOnChanges 不会在输入时触发