Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: Angular 2, AngularJS
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Shasm
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 5
1

События DOM в AngularJS

17.06.2015, 22:02. Просмотров 753. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста, можно ли, средствами AngularJS прослушивать событие pause тега video? Я пытаюсь вызывать Angular функцию в onpause, и это не работает.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2015, 22:02
Ответы с готовыми решениями:

AngularJS Prototype
Помогите пожалуйста, хочу разобраться в Angular, изучаю урок на этом сайте:...

HTML в AngularJS
Здравствуйте, есть код function store() { this.products = на страничке выводится текст...

установка angularjs
скачал nodejs а так же angularjs на официальных сайтов как запустить ангуляр на сервере нода не...

AngularJS Обучение
Учусь работать с AngularJS но не могу понять почему директивы не работают. Вот скрин кода и что...

Directive angularjs
Добрый день Помогите разобраться с директивой. Не хочет работать. Проект прикрепила. Причем...

9
JokerNN
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
17.06.2015, 22:04 2
Можно, для этого сделали директивы, приведите код - будет видно что не так.
0
Shasm
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 5
17.06.2015, 22:23  [ТС] 3
Javascript
1
2
3
4
5
6
7
8
    $scope.saver = function saver(time,link) { alert(currentUser);
        var obj = {name:name};
    $http
    .post('showcourse.php',course).success(function(ans) { 
        $scope.videos = ans;
        alert(JSON.stringify(ans,null,4));
    })
    };
HTML5
1
2
<video class="pull-left" ng-src="{{video.link}}" onpause="saver(currentTime,video.link)" width="400" height="300" controls>
      </video>
Функции ангуляра не вызываются в onpause, как отследить это событие именно для этого элемента, я не знаю.
0
LeniumSoft
1438 / 828 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Завершенные тесты: 1
18.06.2015, 11:16 4
Если делать совсем по правилам Angular, нужно создать директиву.

По этой ссылочке: https://docs.angularjs.org/guide/directive

Посмотрите пример: Creating a Directive that Manipulates the DOM

В этом примере есть подписка на эвенты контрола.
Ну а по эвенту можно вызвать метод в scope.

Добавлено через 2 минуты
А лучше посмотрите на пример: Creating a Directive that Adds Event Listeners

Добавлено через 5 минут
Соответственно нечто подобное вы сможете получить

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$scope.videoOnPause = function(){};
 
 
angular.module('myModule', [])
.directive('videoHandler', ['$document', function($document) {
  return {
    link: function(scope, element, attr) {
      
      element.on('onpause', function(event) {
         scope.videoOnPause();
      });     
    }
  };
}]);
HTML5
1
2
<video class="pull-left" ng-src="{{video.link}}" video-handler width="400" height="300" controls>
      </video>
1
Shasm
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 5
18.06.2015, 13:21  [ТС] 5
Спасибо. А доступ к значению атрибутов этого элемента video я смогу получить?
0
LeniumSoft
1438 / 828 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Завершенные тесты: 1
18.06.2015, 13:27 6
Цитата Сообщение от Shasm Посмотреть сообщение
А доступ к значению атрибутов этого элемента video я смогу получить?
element в директиве это jQuery объект. С ним вы вожете делать всё, что может делать jQuery.
Можете смело задавать аттрибуты и считывать их

Javascript
1
2
3
4
5
element.css('left', 200);
var left = element.css('left');
 
element.attr('myattr', myvalue);
var myValue = element.attr('myattr');
1
Shasm
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 5
18.06.2015, 13:53  [ТС] 7
Я так понимаю, первую строку($scope.videoOnPause=..) нужно поместить в контроллер и в ней уже писать то, что мне нужно делать? или это делается в контроллере? А то у меня не работает(

Добавлено через 8 минут
*или это делается в директиве
0
LeniumSoft
1438 / 828 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Завершенные тесты: 1
18.06.2015, 14:21 8
Цитата Сообщение от Shasm Посмотреть сообщение
нужно поместить в контроллер и в ней уже писать то, что мне нужно делать
Да. Я эту строчку вставил, чтобы показать способ вызова методов, которые присоединены к $scope в контроллере.

А уж дальше вам решать, как это использовать.
0
Shasm
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 5
18.06.2015, 17:56  [ТС] 9
Уже разобрался, спасибо)

Добавлено через 15 минут
Проблемы продолжаются, я могу получить в директиве все значения атрибутов, кроме нужного мне currentTime.

Javascript
1
2
3
4
5
6
element.on('pause', function(event) {
        var time = element.attr('currentTime');
    var title = element.attr('id');
    alert(time); // именно для этого атрибута выводит undefined
        scope.videoOnPause(time,title);
      });
Добавлено через 3 часа 18 минут
Ктоо-нибудь, как мне получить этот currentTime в ангуляре? Он из него и устанавливаться не хочет.
0
LeniumSoft
1438 / 828 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Завершенные тесты: 1
19.06.2015, 10:44 10
Цитата Сообщение от Shasm Посмотреть сообщение
Ктоо-нибудь, как мне получить этот currentTime в ангуляре
А если так?:

Javascript
1
var time = element[0].currentTime;
Добавлено через 4 минуты
или:

Javascript
1
2
3
var myVid = element.get(0);
 
var time = myVid.currentTime;
0
19.06.2015, 10:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2015, 10:44

AngularJS + PHP
Во всех шаблонах AngularJS, во всех скелетах этого фреймворка идет связка AngularJS + Node.JS....

Книги по angularjs
Может кто-нить книги по angularjs подкинет .Желательно на руссом.Где создается какой нибудь...

Ui-router в AngularJS
Привет. у меня такая задача. на главной странице у меня список новостей (лист из Ионик...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru