gpt4 book ai didi

jquery - 如何使用 AngularJS 获取和设置 HTML 标签的属性值?

转载 作者:技术小花猫 更新时间:2023-10-29 12:20:59 25 4
gpt4 key购买 nike

我正在尝试使用 AngularJS 找到获取和设置 HTML 标记中属性值的最佳方法。示例:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>My WebSite</title>
</head>
<body>
<h1>Title</h1>

<p>Praragraph1</p>

<p data-mycustomattr="1234567890">Paragraph 2</p>

<p>Paragraph 3</p>

<footer>Footer</footer>
</body>
</html>

然后,当我调用 url '/home' 时,我想从 data-mycustomattr 中获取值(我将用于另一次计算),然后将其替换为“1”,

如果 url 是“/category”,我想从 data-mycustomattr 中获取值,并将其替换为“2”。

使用 jQuery,这真的很简单:

$("#myPselector").attr('data-mycustomattr');

$("#myPselector").attr('data-mycustomattr','newValue');

我使用了那个 jQuery 代码,将它放在我的 Controller 中,并且运行良好。但据我所知,这可能是一种不好的做法。

但是,我找到的使用指令的解决方案对于这样一个简单的任务来说太大了。所以我想知道在特殊情况下结合使用 jQuery 和 AngularJS 是否还算不错。

你怎么看?您是否有更好的解决方案来获取和设置属性的值?

ANSWER 基于 Jonathan 的回复:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>My WebSite</title>
</head>
<body>
<h1>Title</h1>

<p>Praragraph1</p>

<p data-mycustomattr="{{mycustomattr}}">Paragraph 2</p>

<p>Paragraph 3</p>

<footer>Footer</footer>
</body>
</html>

然后,在 Controller 中,我插入:

$scope.mycustomattr = '1';

阅读方面:

if ($scope.mycustomattr == '1'){
// code
}

经过测试并且工作正常。

最佳答案

一般来说,您希望让您的模型驱动您的 View ,并避免直接对 DOM 进行更改。实现此目的的一种方法是让您的 Controller 根据路由设置属性的值。然后将该值绑定(bind)到所需的属性

 var mediaApp = angular.module('mediaApp',[]);

mediaApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/video', {templateUrl: 'video.html', controller: 'VideoCtrl'});
$routeProvider.when('/audio', {templateUrl: 'audio.html', controller: 'AudioCtrl'});
}]);

mediaApp.controller('VideoCtrl',function($scope){
$scope.customAttributeValue = "1";

});

mediaApp.controller('AudioCtrl',function($scope){
$scope.customAttributeValue = "2";
});

然后在您的 View 模板中简单地绑定(bind)属性。

 <h2>Videos</h2>
<div data-customattr="{{customAttributeValue}}">
</div>

还有音频模板...

 <h2>Audio</h2>
<div data-customattr="{{customAttributeValue}}">
</div>

当导航到路由/video data-customattr 时值为 1,当导航到路由/audio data-customattr 时值为 2 .

关于jquery - 如何使用 AngularJS 获取和设置 HTML 标签的属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549498/

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