Javascript AngularJS+;es6控制器方法和$scope

Javascript AngularJS+;es6控制器方法和$scope,javascript,angularjs,scope,controller,ecmascript-6,Javascript,Angularjs,Scope,Controller,Ecmascript 6,我尝试使用angularJS(1.6.6)和es6。而且不了解一些特征。 我创建控制器: export default class NodesController { 创建构造函数 constructor(nodesService, $scope, $filter) { 还有两个变量: $scope.currentPage = 0; $scope.pageSize = 10; 一切都很好,我得到了新的价值范围。有人能帮忙理解吗? 另外一个问题是,为什么numberOfPages()在应用程序

我尝试使用angularJS(1.6.6)和es6。而且不了解一些特征。 我创建控制器:

export default class NodesController {
创建构造函数

constructor(nodesService, $scope, $filter) {
还有两个变量:

$scope.currentPage = 0; $scope.pageSize = 10; 一切都很好,我得到了新的价值范围。有人能帮忙理解吗?
另外一个问题是,为什么numberOfPages()在应用程序初始化和更改页面大小时调用2次

区别在于使用原语类型和对象类型,如果你想有双向绑定,你应该使用对象,基本上是这样的,当我们传递一个原语变量时,它是通过值传递并重新创建的,而不是通过引用传递的。只有对象是通过引用传递的。为什么只有在我使用es6时才这样?它不必是es6,任何两种绑定方式都必须使用对象。如果搜索双向绑定原语和对象,您就有足够的资源:)表达式“{{currentPage+1}}/{{numberOfPages()}}”应始终返回NaN,因为$scope.numberOfPages方法只返回未定义的内容。是吗?@AlekseyMakas关于函数被调用两次,任何用双大括号括起来的表达式都是一个在摘要周期中至少被计算一次的表达式。由于它是一个函数,所以会首先调用它以获取值,然后再调用它以确保没有任何更改并保持视图更新。关于您发送的另一个fiddle,它工作得很好,因为scopes定义处于同一级别,我也尝试控制scope,并且在更改ng模型时它显示了正确的值。您的设置可能有问题,因为代码似乎仍然不完整。区别在于使用基元类型和对象类型,如果您想要双向绑定,您应该使用对象,基本上是这样的,当我们传递基元变量时,它被值传递并重新创建,而不是通过引用传递。只有对象是通过引用传递的。为什么只有在我使用es6时才这样?它不必是es6,任何两种绑定方式都必须使用对象。如果搜索双向绑定原语和对象,您就有足够的资源:)表达式“{{currentPage+1}}/{{numberOfPages()}}”应始终返回NaN,因为$scope.numberOfPages方法只返回未定义的内容。是吗?@AlekseyMakas关于函数被调用两次,任何用双大括号括起来的表达式都是一个在摘要周期中至少被计算一次的表达式。由于它是一个函数,所以会首先调用它以获取值,然后再调用它以确保没有任何更改并保持视图更新。关于您发送的另一个fiddle,它工作得很好,因为scopes定义处于同一级别,我也尝试控制scope,并且在更改ng模型时它显示了正确的值。您的设置可能有问题,因为代码似乎仍然没有满 $scope.numberOfPages = () => {console.log($scope)}
<span>{{currentPage + 1}} / {{numberOfPages()}}</span>
<select ng-model="pageSize" class="form-control">
  <option value="5">5</option>
  <option value="10">10</option>
  <option value="15">15</option>
  <option value="20">20</option>
</select>
$scope.paging = {currentPage: 1, pageSize: 20}