gpt4 book ai didi

javascript - 如何使用 AngularJS 获取元素的属性

转载 作者:行者123 更新时间:2023-11-30 17:16:03 25 4
gpt4 key购买 nike

我有以下代码:

<div class="col-md-10" data-ng-controller="type-controller">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-success" ng-model="typeId" data-btn-radio="'1'">
Option 1
</label>
<label class="btn btn-success" ng-model="typeId" data-btn-radio="'2'">
Option 2
</label>
</div>
<input data-ng-model="typeId" name="typeId" type="hidden" data-start="2" />
</div>

我的 type-controller是空的,所以我省略了它 - 但我想获取属性值 data-start来自 type-controller 中的最后一个输入.

我没有使用 jQuery。

最佳答案

如果属性 data-start 很重要,因为它正被其他一些第 3 方库使用,那么您可以考虑在创建它时简单地使用 ng-init在服务器上:

<input data-ng-model="typeId" name="typeId" type="hidden" data-start="2" 
ng-init='start = 2' />

这基本上会运行您需要的任何代码,并且您不必从 DOM 中解析出数据属性。

您可以编写一个非常简单的指令来提取值并使用表达式发布。这基本上会完成同样的事情,但在我看来更难:

angular.module('data-pluck', [])
.controller('fooController', function() {

this.name = 'Foo Controller';

})
.directive('pluckData', ['$parse',
function($parse) {

return {
restrict: 'A',
link: function(scope, elem, attrs) {
var expression = function() {};
expression.assign = function() {};

scope.$watch(attrs.placeData, function() {
expression = $parse(attrs.placeData);
});

scope.$watch(attrs.pluckData, function() {
expression.assign(scope, attrs[attrs.pluckData]);
});
}
};

}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='data-pluck' ng-controller='fooController as ctrl'>
<h1>{{ctrl.name}}</h1>
<div data-my-val="I'm value one" pluck-data='myVal' place-data='ctrl.valueOne'>
<p>I'm a regular old <code>&lt;p&gt;</code> tag</p>
<input type='hidden' data-my-val="I'm the second value" pluck-data='myVal' place-data='ctrl.valueTwo' />
</div>
<h3>These Values Populated Dynamically</h3>
<ul>
<li>ctrl.valueOne = {{ctrl.valueOne}}</li>
<li>ctrl.valueTwo = {{ctrl.valueTwo}}</li>
</ul>
</div>

关于javascript - 如何使用 AngularJS 获取元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26105185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com