2015-05-27 3 views
0

Для моего проекта мне нужно сканировать BLE-теги и показывать их RSSI для близости.внутренний вывод HTML с шаблоном Javascript

Выход BLE работает с шаблоном JavaScript.

<body> 
    <div id="header" data-role="header" data-theme="b"> 
     <h1>BLE overview</h1> 
    </div>   
     </br> 
    <div data-role="content" id="home"> 
     <a href="#" data-role="button" data-theme="b" data-inline="true" class="pure-button initialize">Initialize</a> 
     <a href="#" data-role="button" data-theme="b" data-inline="true" class="pure-button startScan">Start Scan</a> 
     <a href="#" data-role="button" data-theme="b" data-inline="true" class="pure-button stopScan">Stop Scan</a> 
    </div> 
     <ul data-role="list-view" class="devices"></ul> 
    <div data-role="content id="result"> 
     <script type="text/template" id="device">  //start of the schript tag and output of the scanned BLEs 
      <ul data-role="listview"> 
      <li data-address="{0}"> 
       <h2>{1}</h2> 
       <a href="#" data-role="button" data-theme="b" class="pure-button connect">Connect</a> 
       <div id="rssiop"> RSSI: <div> // value of the RSSI 
       </br> 
      </li> 
     </ul> 
     </script> 
    </div>  

Функция, которая возвращает значение ИНПС следующие

function startScanSuccess(obj) 
{ 
    console.log("The RSSI value is:" + obj.rssi); // here I see the RSSI value on the console 

    if (obj.status == "scanResult") 
    { 
    console.log("Scan Result"); 

    addDevice(obj.address, obj.name);   
    } 
    else if (obj.status == "scanStarted") 
    { 
    console.log("Scan Started"); 
    } 
    else 
    { 
    console.log("Unexpected Start Scan Status"); 
    } 
} 

и это функция, которая дает имя и адрес сканированного BLE из

function addDevice(address, name) 
{ 
    var $devices = $(".devices"); 

    var $check = $devices.find("li[data-address='{0}']".format(address)); 

    if ($check.length > 0) 
    { 
    return; 

    } 
    console.log("Mein RSSI: " + obj.rssi); 
    document.getElementById("rssiop").innerHTML = "The RSSI value is:"; 
    var template = $("#device").text().format(address, name); 

    $devices.append(template); 
} 

Итак, все работает, и когда я помещаю div-тег над скриптом шаблона, я вижу RSSI. Может ли кто-нибудь понять, почему innerHTML в части шаблона не работает?

+0

Что представляет собой не работает? – mccainz

+0

Часть с innerHTML, поскольку тег скрипта является шаблоном типа. –

ответ

0

Я понял это:

Проблема в том, что innerHTML не работает, потому что я использовал Append() - команда для вывода списка. Мне просто пришлось добавить параметр rssi в функцию addDevices, и он сработал.

Правильный код функции AddDevice:

function addDevice(address, name, rssi) 
{ 
    var $devices = $(".devices"); 

    var $check = $devices.find("li[data-address='{0}']".format(address)); 

    if ($check.length > 0) 
    { 
    return; 

    } 
    var template = $("#device").text().format(address, name, rssi); 

    $devices.append(template); 

}