Есть ли метод.data в AngularJS?

Предположим, я написал такой тест в HTML, используя атрибут data:

<p>The cow ran in front of the <input data-answer="car"></input>.</p>
<p>Then the <input data-answer="man"></input> hit the breaks.</p>

Как получить доступ к атрибуту data-answer в AngularJS? Я знаю, как сделать это в jQuery с помощью метода.data. Есть ли эквивалент в AngularJS? Я делаю все это неправильно? Должен ли я просто использовать JQuery?

2 ответа

Да, вы все делаете неправильно:P. В AngularJS вам редко приходится напрямую манипулировать элементами DOM. Обычно вы манипулируете только данными.

В этом случае вам нужен контроллер, который содержит данные, и HTML для их отображения. Например:

function AnswerController($scope){
    $scope.doSomething = function(){
        //do something with $scope.man and $scope.car
    }
}

<p>The cow ran in front of the <input ng-model="car" /><p>
<p>Then the <input ng-model="man" /> the breaks.</p>

Вы также можете использовать <input ng-model="answers.man" /> получить 1 результирующий объект, содержащий все ответы.

Обязательно попробуйте учебник, чтобы ознакомиться с основными понятиями Angular. Самое важное правило (которое вы действительно должны повторить при запуске): почти никогда не используйте jQuery. Если вам нужно использовать jQuery (редко), то никогда не используйте его из контроллера, но всегда из директивы.

Пример JavaScript Projects на домашней странице AngularJS также очень полезен.

Используйте директиву, внутри директивы у вас будет link функция:

link: function(scope, elem, attrs) {
    console.log(attrs.answer); //manipulate as you need
}

Angular также поставляется с jqLite, обязательно ознакомьтесь с этим перед реализацией всей библиотеки jQ.

Другие вопросы по тегам