При изучении Angular 1.5 я очень запутался в использовании тегов.JavaScript Angular 1.5.x Controller
А именно, я не могу понять, почему должен быть глобальный объект для хранения переменных в контроллере.
JS Bin: http://jsbin.com/puyayocomi/11/edit?html,js,output
Вопрос заключается в том: Почему мы не можем назвать переменные непосредственно созданные в контроллере, а не с помощью глобального объекта (в данном случае называется «пространство имен»), чтобы держать все переменные контроллера?
index.html:
<!DOCTYPE html>
<html ng-app="todoApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
</head>
<body>
<h2> Angular Controllers </h2>
<!-- Why not : ng-controller="todoCtrl" -->
<div ng-controller="todoCtrl as namespace">
<!-- -->
<ul class="unstyled">
<!-- Why not : ng-repeat="todo in todos" -->
<li ng-repeat="todo in namespace.todos">
<!-- -->
<label class="checkbox">
<input type="checkbox" ng-model="todo.done">
<span class="done-{{todo.done}}">{{todo.text}}. </span>
</label>
</li>
</ul>
</div>
</body>
</html>
JavaScript:
console.log('Hello Script!');
angular.module('todoApp',[]).controller('todoCtrl',function()
{
var namespace = this;
namespace.todos =
[
{ text:'one', done:true },
{ text:'two', done:false }
];
/*
<!-- Why not : -->
var todos =
[
{ text:'one', done:true },
{ text:'two', done:false }
];
*/
})
'$ scope.todos' и' this.todos' эквивалентны. Угловая стилизация john papa способствует «этому» - см. Https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md# стиль-y031 –