Я использую TodoMVC приложение для улучшения работы с инфраструктурой AngularJS. В index.html на строках 14-16 вы увидите следующее:
<form id="todo-form" ng-submit="addTodo()">
<input id="new-todo" placeholder="What needs to be done?" ng-model="newTodo" autofocus>
</form>
Обратите внимание, что директива ng-submit вызывает функцию addTodo() без передачи модели newTodo в качестве аргумента.
Спустя короткое время я встретил следующий код в том же файле в строке 19:
<input id="toggle-all" type="checkbox" ng-model="allChecked" ng-click="markAll(allChecked)">
Вы можете видеть, что автор решил передать модель allChecked функции markAll() на этот раз. Если я правильно понял, они могли бы ссылаться на $scope.allChecked внутри контроллера вместо того, чтобы передавать его.
Зачем использовать два разных подхода в одном файле? Является ли один подход лучше в некоторых случаях? Это случай несогласованности или используется более глубокая логика?