Как использовать ng-click для загрузки API

0

Я начинаю с угловатыми. Я также использую ResponsiveVoice.JS для голосового компонента приложения. Моя проблема в том, что если я использую ng-click, голос не работает. Если я использую onClick, он работает. Как использовать этот API с помощью ng-click?

Мне нужно это с помощью ng-click, потому что мне нужно передать голосовой текст в качестве параметра из моего маршрутаParams в контроллере.

Вот изображение, которое будет воспроизводить голос за кадром при нажатии.

<img src="images/audio.png" onclick='responsiveVoice.speak("Text spoken.", "UK English Male")' class="pull-right"/>

Вот ссылка на api, которую я загрузил в свой index.html в разделе главы.

<script src='http://code.responsivevoice.org/responsivevoice.js'></script>

Я хочу, чтобы это было так.

<img src="images/audio.png" ng-click='responsiveVoice.speak({{ parameter from controller }}, "UK English Male")' class="pull-right"/>

2 ответа

2
Лучший ответ

responsivevoice - глобальный объект, но ng-click распознает только методы или выражения, доступные через угловую область.

Однако глобальный объект можно получить из любого javascript на странице.

Таким образом, самый простой способ сделать это - создать объект области, который ссылается на глобальный объект:

$scope.responsiveVoice = responsiveVoice;

Теперь вы можете использовать responsiveVoice в представлении

Чтобы использовать параметры из области действия, создайте несколько другую версию

$scope.speak = function( item){
   // i have no idea what objects are used...assuming it has property 'text'
   responsiveVoice.speak(item.text,  "UK English Male");
}

Тогда html будет

<img src="images/audio.png" ng-click="speak( scopeObject)">
  • 0
    Спасибо!!! Это сработало отлично.
  • 0
    обновление примечания, чтобы использовать его с передачей переменной области видимости
Показать ещё 1 комментарий
0

попробуй это

<img src="images/audio.png" ng-click='responsiveVoice.speak("{{ parameter from controller }}", "UK English Male")' class="pull-right"/>

Возможно, вы передали строку из контроллера. Что вызывает вызов функции как

responsiveVoice.speak(param, "lang")

Это нарушит ваш вызов функции, поскольку функция ожидает строковый параметр

Ещё вопросы

Сообщество Overcoder
Наверх
Меню