AngularJS中是否有.data方法?

时间:2013-10-21 20:35:57

标签: html5 angularjs html5-data

假设我使用data属性在HTML中编写这样的测验:

<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>

如何访问AngularJS中的data-answer属性?我知道如何使用.data方法在jQuery中执行此操作。 AngularJS中有等价物吗?我做错了吗?我应该只使用jQuery吗?

2 个答案:

答案 0 :(得分:2)

是的,你做错了:P。在AngularJS中,您很少需要直接操作DOM元素。通常你只操纵数据。

在这种情况下,您需要一个保存数据的Controller,以及用于显示数据的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个结果对象。

请务必尝试tutorial以熟悉Angular的基本概念。最重要的规则(当你开始时你必须重复自己)是:几乎从不使用jQuery。如果您 使用jQuery(您很少这样做),那么永远不会从控制器中使用它,但始终来自指令。

AngularJS home page上的“JavaScript项目”示例也非常有用。

答案 1 :(得分:1)

在指令中使用指令,您将拥有link函数:

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

Angular还附带了jqLit​​e,请务必在实现整个jQ lib之前检查它。