Ответ 1
Нет, вы не можете. $scope
определяется только внутри Angular, то есть внутри вашей AngularCtrl
-функции. Есть способы получить доступ к областям angular извне, но это обычно неправильная практика и знак, что вы не используете angular правильно.
Более угловатый способ делать то, что вы пытаетесь сделать, чтобы предупредить часть логики контроллера:
function AngularCtrl($scope) {
$scope.user_name = 'John';
$scope.sayHi = function(){
alert('Hi ' + $scope.user_name);
}
}
Затем вы можете использовать множество angular -techniques (Demo Here), чтобы вызвать эту функцию sayHi()
. Некоторые примеры:
В ответ на щелчок
<div ng-click="sayHi()">Demo clickable - Please click me</div>
Автоматически один раз, когда данный элемент создается/инициализируется
<div ng-init="sayHi()">Demo ng-init</div>
Непосредственно из контроллера, когда он инициализирован
function AngularCtrl($scope) {
$scope.user_name = 'John';
$scope.sayHi = function(){
alert('Hi ' + $scope.user_name);
}
// Call it
$scope.sayHi();
}
Надеемся, что эти примеры вдохновляют, но то, что вы действительно должны делать, зависит от того, что вы действительно пытаетесь выполнить.