programing

Angular JS와 눈에 띄지 않는 자바스크립트

cafebook 2023. 10. 10. 20:57
반응형

Angular JS와 눈에 띄지 않는 자바스크립트

MVC와 Angular를 막 배우고 있는데 다음과 같은 코드가 궁금합니다. (angularjs.org 에서 taken)

<html ng-app>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
    <script src="Scripts/Todo.js" type="text/javascript"></script>
    <link rel="stylesheet" href="todo.css">
</head>
<body>
    <h2>
        Todo</h2>
    <div ng-controller="TodoCtrl">
        <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">
            archive</a> ]
        <ul class="unstyled">
            <li ng-repeat="todo in todos">
                <input type="checkbox" ng-model="todo.done">
                <span class="done-{{todo.done}}">{{todo.text}}</span> </li>
        </ul>
        <form ng-submit="addTodo()">
        <input type="text" ng-model="todoText" size="30" placeholder="">
        <input class="btn-primary" type="submit" value="add">
        </form>
    </div>
</body>

Todo.js

function TodoCtrl($scope) {
    $scope.todos = [
    { text: 'learn angular', done: true },
    { text: 'build an angular app', done: false}];

    $scope.addTodo = function () {
        $scope.todos.push({ text: $scope.todoText, done: false });
        $scope.todoText = '';
    };

    $scope.remaining = function () {
        var count = 0;
        angular.forEach($scope.todos, function (todo) {
            count += todo.done ? 0 : 1;
        });
        return count;
    };

    $scope.archive = function () {
        var oldTodos = $scope.todos;
        $scope.todos = [];
        angular.forEach(oldTodos, function (todo) {
            if (!todo.done) $scope.todos.push(todo);
        });
    };
}

만약 눈에 띄지 않는 자바스크립트의 신조가 우리가 프레젠테이션으로부터 행동을 분리할 필요가 있다고 말한다면, 왜 angular가 다음과 같은 코드를 가지는 것이 괜찮고 최선의 방법입니다.ng-click=archive()?

눈에 띄지 않는 자바스크립트는 예전처럼 중요하지 않은 오래된 개념입니다.위키피디아에서.

"방해하지 않는 자바스크립트" 지지자들은 마크업의 목적은 문서의 구조를 설명하는 것이지, 문서의 프로그램적인 행동을 설명하는 것이 아니며, 이 둘을 결합하는 것은 사이트의 유지보수성에 부정적인 영향을 미친다고 주장합니다.

개발팀 외에는 아무도 당신의 DOM 코드를 보지 않기 때문에 사용성은 중요하지 않습니다.인라인 이벤트 핸들러는 각도 철학을 수용하면 유지보수가 더 쉬워집니다.그러나 HTML을 더 깨끗하게 유지하기 위해 항상 $watch를 사용할 수 있습니다.

Angular 웹사이트가 가장 잘 표현하는 것처럼,

AngularJS를 사용하면 응용 프로그램의 HTML 어휘를 확장할 수 있습니다.결과적인 환경은 표현력이 뛰어나고 가독성이 뛰어나며 개발이 빠릅니다.

검색 엔진들은 당신의 사이트를 색인하는 데 약간 어려움을 겪을 수 있지만, 우리는 그것을 해결하기 위해 RSS, 사이트맵, 그리고 AJAX 크롤링을 가지고 있습니다.

스마트폰이 아닌 시장을 위해 앱을 구축하지 않는 한 우아한 열화는 더 이상 관련이 없습니다.거의 모든 사용자가 현대 자바스크립트를 지원하는 브라우저에 있습니다.

접근성과 각도는 충돌하지 않습니다.꼭 ARIA 태그와 적절한 마크업을 사용하세요.Angular는 테스트 가능한 코드를 더 쉽게 작성할 수 있도록 해주며 예외 처리 기능을 내장되어 있습니다.

기능으로 전역 범위를 오염시키는 경우 우려 분리가 문제가 됩니다.Angular는 다른 파일이나 코드에 영향을 주지 않고 자바스크립트 코드를 별도로 유지하는 것을 더 쉽게 해줍니다.

나는 각을 배우는 것과 같은 결론에 도달했습니다.저는 데이터에 대해 html 속성을 신경쓰지 않지만, 우리는 오랫동안 html 태그에서 on click이나 다른 이벤트를 하지 않으려고 노력해 왔습니다.평가된 표현들은 저를 더욱 더 불쾌하게 만듭니다.ng-model-setter="set ($value)"와 같이 입력할 수 있습니다.마크업이 아닌 자바스크립트로 된 느낌입니다.

언급URL : https://stackoverflow.com/questions/20906804/angular-js-and-unobtrusive-javascript

반응형