Я начинаю с угловатыми. Я также использую 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"/>
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)">
попробуй это
<img src="images/audio.png" ng-click='responsiveVoice.speak("{{ parameter from controller }}", "UK English Male")' class="pull-right"/>
Возможно, вы передали строку из контроллера. Что вызывает вызов функции как
responsiveVoice.speak(param, "lang")
Это нарушит ваш вызов функции, поскольку функция ожидает строковый параметр