в приведенном ниже коде переменные определяются с помощью директивы ng-init
, угловое выражение дает доступ к этим переменным,
<body ng-app="">
<div ng-init="arr = [1, 2, 3, 4];obj={x:1}">
{{arr[0]}}
</div>
</body>
Используя код javascript,
<body ng-app="">
<div ng-init="arr = [1, 2, 3, 4];obj={x:1}">
<script type="text/javascript">
//access arr[0] using div DOM object
</script>
</div>
</body>
Я узнал, что данные напрямую привязаны к представлению (DOM).
Чтобы узнать, как работает ng-init
директива under-hood, как мне получить доступ к arr[0]
с помощью элемента div
DOM?
Вам нужно добавить в приложение угловые компоненты. Сначала добавьте модуль своего приложения и добавьте контроллер этой области.
<html>
<body ng-app="App">
<div ng-controller="mainCtrl" ng-init="init()">
{{arr[0]}}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('App',[]);
app.controller('mainCtrl', ['$scope', function($scope) {
$scope.arr = [];
$scope.obj = {};
$scope.init = function(){
$scope.arr = [1, 2, 3, 4];
$scope.obj={x:1};
};
}]);
</script>
</body>
</html>
Вы можете получить доступ к нему только в контроллере. Код внутри контроллера будет выглядеть так:
var value = $scope.arr[0];