Вы не «определить» $scope
, это основа объект, который управляется для вас.
Если вы используете синтаксис ControllerAs, ваш контроллер может быть добавлен в $scope
в качестве свойства. В противном случае вам нужно будет обратиться к объекту $scope
, который можно вводить через инъекцию угловой зависимости. Вы можете вводить столько зависимостей, сколько необходимо для своего приложения.
Таким образом, два варианта, которые у вас есть доступны для вас:
ControllerAs:
angular.module('NoteWrangler')
.controller('NotesIndexController', ['$http', function($http) {
var controller = this;
$http({method: 'GET', url: '/notes'}).success(function(data) {
controller.notes = data;
});
}]);
<div ng-controller="NotesIndexController as controller">
{{controller.notes}}
</div>
Прямой $scope
:
angular.module('NoteWrangler')
.controller('NotesIndexController', ['$scope', '$http', function($scope, $http) {
var controller = this;
$http({method: 'GET', url: '/notes'}).success(function(data) {
$scope.notes = data;
});
}]);
<div ng-controller="NotesIndexController">
{{notes}}
</div>
Обратите внимание, что $scope
объекта подразумевается в первом пример и не требуется в коде контроллера, а явный во втором. Также обратите внимание, что $scope
содержит некоторые конкретные правила относительно примитивов и наследования прототипов, поэтому всегда рекомендуется использовать точку в ваших привязках HTML, которые синтаксис ControllerAs выполняется автоматически.
В конечном счете, выбор синтаксиса для использования зависит от вас, но рекомендуется, чтобы он был согласованным во всем приложении и всегда ссылался на $scope
или ссылался только на специальные свойства, которые вы не можете достичь каким-либо другим способом.
Он вводится ... –
В первой версии его там не было, обновлено последним на –