2014-11-04 99 views
1

我是AngularJS的新手。我想知道有什么区别 之间下面的两段代码:

定义使用该控制器

I.代码:

var app = angular.module('greeting', []); 
app.controller('HelloCtrl', function() { 
    this.name = 'Hello World'; 
}); 

II。使用$ scope来定义控制器的代码:

var app = angular.module('greeting', []); 
app.controller('HelloCtrl', function($scope) { 
    $scope.name = 'Hello World'; 
}); 

谢谢。

回答

1

管理这两个实现,在视图中使用不同。 这个语法与控制器一起使用,作为语法,这基本上使您的控制器成为您的视图模型。

控制器作为示例

在控制器

this.text = "Controller as example" 

在View

<div ng-controller="myCtrl as controllerViewModel"> 
    {{controllerViewModel.text}} 
</div> 

范围等效

在控制器

$scope.text = "Scope example"; 

在查看

<div ng-controller="myCtrl">{{text}}</div> 

下面是关于主题

https://docs.angularjs.org/api/ng/directive/ngController

一些有用的链接

http://toddmotto.com/digging-into-angulars-controller-as-syntax/

https://thinkster.io/egghead/experimental-controller-as-syntax/

1

“这”指的是你的HelloCtrl实例... $范围是一个完全不同的对象,是已经得到了状态,并通过角