Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 如果Angular2没有';如果没有控制器,为什么在Angular 1.5+;中建议使用它;?_Angularjs - Fatal编程技术网

Angularjs 如果Angular2没有';如果没有控制器,为什么在Angular 1.5+;中建议使用它;?

Angularjs 如果Angular2没有';如果没有控制器,为什么在Angular 1.5+;中建议使用它;?,angularjs,Angularjs,因此,在Angular 2中没有controllerAs语法,组件的属性可以直接在模板中使用,例如,与此组件类似: @Component({ selector: 'component-a', template: `<div class="component-a"> <div class="counter" (click)="increment()">Component A: {{counter}}</div>

因此,在Angular 2中没有controllerAs语法,组件的属性可以直接在模板中使用,例如,与此组件类似:

@Component({
    selector: 'component-a',
    template: `<div class="component-a">
                <div class="counter" (click)="increment()">Component A: {{counter}}</div>
              </div>`
})
export class ComponentA {

    counter = 0;

    increment() {
        this.counter += 1;
    }

}
但我从来没有这样做过,并且在所有这些情况下都使用了指令/组件。那么,当我在Angular 1.5+中的整个架构都基于组件时,controllerAs的优势是什么?我有一个孤立的范围无论如何。。。那么为什么不直接使用no-controllerAs呢,它的语法与Angular 2相同?我的意思是迁移它很容易,因为我可以在项目中的所有
$ctrl.
上进行查找和替换,我只想了解controllerAs在这种情况下带来了哪些好处(如果有的话)

再举一个例子: 这是吗


你好{{$ctrl.somebinding}
我更喜欢这个

  <button class="btn btn-default" ng-click="sayHello()">
    Hello {{somebinding}}
  </button>

你好{{somebinding}}

作为具有独立作用域的Angular 1.5+组件的模板,如果是为什么,因为后者的语法实际上更接近Angular 2

controllera
应该用于指令和控制器,当然不是组件。(一些LIB,如angular bootstrap、angular material、ui router没有迁移到1.5-1.6,仍然需要控制器)

我猜大多数推荐“Controllera”都是在Angular 1.5之前编写的,当时没有组件


我的意思是,在组件中,控制器是$ctrl,不需要controllerAs语法。如果您对为什么默认情况下{{prop}}不计算为控制器属性感兴趣——core angular service$parse在1.4中使用了scope——那么当他们添加组件时,显然无法更改这一点。否则,先前版本的所有书面代码将停止工作。

controllera
应用于指令和控制器,而不是组件。(一些LIB,如angular bootstrap、angular material、ui router没有迁移到1.5-1.6,仍然需要控制器)

我猜大多数推荐“Controllera”都是在Angular 1.5之前编写的,当时没有组件


我的意思是,在组件中,控制器是$ctrl,不需要controllerAs语法。如果您对为什么默认情况下{{prop}}不计算为控制器属性感兴趣——core angular service$parse在1.4中使用了scope——那么当他们添加组件时,显然无法更改这一点。否则,以前angular版本的所有书面代码都将停止工作。

您是否看到有人建议在1.5中使用组件架构的Controllera?我们经常使用Controllera,直到我们开始以组件的方式开发,从那时起我们就没有使用过Controllera。我一直使用快速拨号,但我们不使用
Controllera
,而是对每个范围使用默认的
$ctrl
(技术上是
Controllera
)是的,为什么在Angular 2中不需要时,模板中到处都有
$ctrl.
?正如你所说,从技术上讲,它是controllerAs。你见过有人建议在1.5中使用组件架构的controllerAs吗?我们经常使用Controllera,直到我们开始以组件的方式开发,从那时起我们就没有使用过Controllera。我一直使用快速拨号,但我们不使用
Controllera
,而是对每个范围使用默认的
$ctrl
(技术上是
Controllera
)是的,为什么在Angular 2中不需要时,模板中到处都有
$ctrl.
?正如您所说,从技术上讲,它是controllerAs。但对于组件,它甚至是带有
$ctrl
的角度默认值,请参见此处。为什么你说它不应该用于组件?但它甚至是组件的角度默认值,使用
$ctrl
,请参见此处。你怎么说它不应该用在组件上?
  <button class="btn btn-default" ng-click="$ctrl.sayHello()">
    Hello {{$ctrl.somebinding}}
  </button>
  <button class="btn btn-default" ng-click="sayHello()">
    Hello {{somebinding}}
  </button>