0

假设我使用 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吗?

4

2 回答 2

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(你很少这样做),那么永远不要从控制器中使用它,而总是从指令中使用它。

AngularJS 主页上的“JavaScript 项目”示例也很有帮助。

于 2013-10-21T20:51:42.283 回答
1

使用指令,在指令内你将有一个link函数:

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

Angular 还带有 jqLit​​e,在实现整个 jQ 库之前一定要检查一下。

于 2013-10-21T20:39:13.973 回答