Angularjs | как получить значение атрибута из элемента, в котором определен контроллер



Я все еще борюсь с простыми вещами в Angular. У меня есть фон jQuery и Backbonejs, поэтому, пожалуйста, не кричите на меня. Я очень стараюсь понять различия



У меня есть HTML, в котором из rails дается ID проекта как data-project-id:



<div data-ng-controller="ProjectCtrl as ctrl" data-project-id="1" id="project_configuration">


Есть ли шанс получить доступ к этому атрибуту? Мне это нужно для моих вызовов API...

517   2  

2 ответов:

Чтобы получить доступ к атрибутам элементов из контроллера, введите $attrs в функцию контроллера:

HTML

<div test="hello world" ng-controller="ctrl">
</div>

Сценарий

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

В вашем примере, если вы хотите получить data-project-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 world вы должны использовать директивы для управления элементами DOM. Вот хорошее объяснение, как получить значение атрибута из пользовательской Директивы (Как получить оцененные атрибуты внутри пользовательской директивы ).

Но если вы все еще хотите получить его значение от контроллера, вы можете также использовать jQuery $('#project_configuration').data('project-id')

Comments

    Ничего не найдено.