Angularjs |如何从定义控制器的元素中获取属性值
Angularjs | how to get an attribute value from element in which controller is defined
我仍在为 Angular 中的简单事物而奋斗。我有 jQuery 和 Backbonejs 背景,所以请不要对我大喊大叫。我努力理解差异
我有 HTML,其中 rails 的项目 ID 为 data-project-id:
<div data-ng-controller="ProjectCtrl as ctrl" data-project-id="1" id="project_configuration">
是否有机会获得此属性?我的 API 电话需要它...
在 Angular 世界中,您应该使用指令来操作 DOM 元素。这里有一个很好的解释如何从自定义指令 (How to get evaluated attributes inside a custom directive).
获取属性值
但如果您仍想从控制器获取它的值,您也可以使用 jQuery $('#project_configuration').data('project-id')
要从控制器访问元素属性,请将 $attrs
注入您的控制器函数:
HTML
<div test="hello world" ng-controller="ctrl">
</div>
脚本
app.controller('ctrl', function($attrs) {
alert($attrs.test); // alerts 'hello world'
});
在你的例子中,如果你想获取数据项目ID:
$attrs.projectId
或者如果你想获取id:
$attrs.id
演示:
var app = angular.module('app',[]);
app.controller('ctrl', function($attrs) {
alert($attrs.test);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl" test="hello world">
</div>
我仍在为 Angular 中的简单事物而奋斗。我有 jQuery 和 Backbonejs 背景,所以请不要对我大喊大叫。我努力理解差异
我有 HTML,其中 rails 的项目 ID 为 data-project-id:
<div data-ng-controller="ProjectCtrl as ctrl" data-project-id="1" id="project_configuration">
是否有机会获得此属性?我的 API 电话需要它...
在 Angular 世界中,您应该使用指令来操作 DOM 元素。这里有一个很好的解释如何从自定义指令 (How to get evaluated attributes inside a custom directive).
获取属性值但如果您仍想从控制器获取它的值,您也可以使用 jQuery $('#project_configuration').data('project-id')
要从控制器访问元素属性,请将 $attrs
注入您的控制器函数:
HTML
<div test="hello world" ng-controller="ctrl">
</div>
脚本
app.controller('ctrl', function($attrs) {
alert($attrs.test); // alerts 'hello world'
});
在你的例子中,如果你想获取数据项目ID:
$attrs.projectId
或者如果你想获取id:
$attrs.id
演示:
var app = angular.module('app',[]);
app.controller('ctrl', function($attrs) {
alert($attrs.test);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl" test="hello world">
</div>