Почему window.open не работает, чтобы открыть ссылку на телефонный звонок?

0

Вот мой полный код,

    <div data-ng-repeat="cont in contacts  | filter: searchText">
 <h4 class="contacts" style="border-bottom: none;">{{cont._id}}</h4>
 <ul>
      <li data-ng-repeat="c in cont.subgroup" class="contacts">
       <div class="contact_person">
         <img ng-src="https://127.0.0.1/uploads/pp/{{c.empic}}" onerror="this.src='https://hive.robi.com.bd/uploads/logo.png'" />
         <div class="contact_info info">
             <p class="contInfo">{{c.name}}</p>
             <p class="contInfo">{{c.contact}}</p>
             <p class="contInfo">{{c.email}}</p>
         </div>
       </div>
       <div class="call">

    <a onclick="window.open('tel:+{{c.contact}}')"><img src="img/call.png"                  id="callImg"></a>

         </div>         
         </li>
        </ul>

    </div>

В <a onclick="window.open('tel:+{{c.contact}}')"><img src="img/call.png" id="callImg"></a>

он открывает новую вкладку и звонки говорят: + {{c.contact}}, но почему {{c.contact}} не получает значение, например, номер телефона?

NB Я попробовал ng-click, ng-href, href ничего не работает.

  • 1
    не могли бы вы показать нам свой угловой код? И это в ng-repeat ? Пожалуйста, предоставьте нам больше информации относительно этого фрагмента HTML.
  • 0
    Я добавил свой полный код @Jorrex
Показать ещё 1 комментарий
Теги:
ionic-framework

3 ответа

1

Я сказал, что попробовал ng-href, ng-click в моем вопросе. Да, ng-href верен, но я обнаружил, что проблема была чем-то другим.

В моем контроллере был фрагмент кода

.config(function($provide, $stateProvider, $urlRouterProvider, $httpProvider, $ionicConfigProvider, $compileProvider) {

 $compileProvider.aHrefSanitizationWhitelist(/^\s*(http?|ftp|mailto|file|tel|ghttps?|ms-appx|x-wmapp0):/);
  ....
  ....
  // more codes
 }

В $compileProvider я обнаружил, что |tel| не было, поэтому после добавления этого вопроса проблема исправлена.

1

Вы должны использовать ng-click. не onclick, использовать угловой {{}} синтаксис... :-)

То есть:

<a ng-click="window.open('tel:'{{c.contact}})">...</a>

Или, еще лучше (как из ответа @Martin), ng-href:

<a ng-href="tel:{{c.contact}}">...</a>
  • 0
    Это правда, но ОП попытался щелкнуть, чтобы получить ссылку.
  • 0
    Правильно, извините ... @NahiduzzamanRose: не могли бы вы уточнить " Я пробовал ng-click, ng-href, href ничего не работает "?
0

Нажмите " Выполнить фрагмент кода" ниже, чтобы увидеть рабочий пример.

Почему бы просто не использовать ng-href?

function ContactController() {
  this.contact = "+1-312-555-0963"; 
}

angular.module('app', []).controller('ContactController', ContactController);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ContactController as c">
    
    <a ng-href="tel:{{c.contact}}">
        <img src="img/call.png"  alt="Dial {{c.contact}}" />
    </a>
  
</div>

Браузер вашего мобильного устройства увидит, что протокол ссылки - tel: и откройте приложение дозвона с предоставленным номером телефона.

  • 0
    Это правда, но ОП попытался щелкнуть, чтобы получить ссылку.

Ещё вопросы

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