Angularjs | 如何从定义控制器的元素中获取属性值

Kan*_*nia 6 dom angularjs

我还在和Angular中的简单事物作斗争.我有jQuery和Backbonejs背景,所以请不要对我大喊大叫.我努力理解差异

我有HTML,其中来自rails的项目ID为data-project-id:

<div data-ng-controller="ProjectCtrl as ctrl" data-project-id="1" id="project_configuration">
Run Code Online (Sandbox Code Playgroud)

有没有机会获得这个属性的访问权限?我需要它到我的API调用...

pix*_*its 15

要从控制器访问元素属性,请注入$attrs控制器功能:

HTML

<div test="hello world" ng-controller="ctrl">
</div>
Run Code Online (Sandbox Code Playgroud)

脚本

app.controller('ctrl', function($attrs) {
  alert($attrs.test); // alerts 'hello world'
});
Run Code Online (Sandbox Code Playgroud)

在您的示例中,如果您想获取data-project-id:

$attrs.projectId
Run Code Online (Sandbox Code Playgroud)

或者如果你想获得id:

$attrs.id
Run Code Online (Sandbox Code Playgroud)

演示:

var app = angular.module('app',[]);
app.controller('ctrl', function($attrs) {
  alert($attrs.test);
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)