2014-12-09 6 views
1

Я создаю первое приложение cordova с помощью визуальных инструментов студии студии.
Я использую Windows 7 и VS Community (если это важно) и рябь эмулятора.
Проблема в том, что у меня есть код: <button onclick="showAlert(); return false;">Click Me</button> и моя функция определена in index.ts.
Но я получаю ошибку Exception: showAlert is not defined при нажатии на кнопку.
Что мне здесь не хватает?
Это compelte код:
index.htmlНевозможно вызвать функции в кордове - визуальная студия

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>Cordova01</title> 

    <!-- Cordova01 references --> 
    <link href="css/index.css" rel="stylesheet" /> 
</head> 
<body> 
    <p>Hello, your application is ready!</p> 
    <p><strong>Hello, from Cordova :)</strong></p> 
    <button onclick="showAlert(); return false;">Click Me</button> 
    <!-- Cordova reference, this is added to your app when it's built. --> 
    <script src="cordova.js"></script>  
    <script src="scripts/platformOverrides.js"></script> 
    <script src="scripts/index.js"></script> 
</body> 
</html> 

index.ts

module Cordova01 { 
    "use strict"; 

    export module Application { 
     export function initialize() { 
      document.addEventListener('deviceready', onDeviceReady, false); 
     } 

     function onDeviceReady() { 
      // Handle the Cordova pause and resume events 
      document.addEventListener('pause', onPause, false); 
      document.addEventListener('resume', onResume, false); 

      // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here. 

     } 

     function showAlert() { 
      navigator.notification.alert(
       "This is simple message!", // message 
       null,  // callback 
       "Alert View Title", // title 
       'OK'  // buttonName 
       );  
     } 

     function onPause() { 
      // TODO: This application has been suspended. Save application state here. 
     } 

     function onResume() { 
      // TODO: This application has been reactivated. Restore application state here. 
     } 

    } 

    window.onload = function() { 
     Application.initialize(); 
    } 


} 

ответ

1

Вы почти там, вы должны изменить функцию showAlert к export function showAlert() И в HTML изменить его слишком <button onclick="Cordova01.Application.showAlert(); return false;">Click Me</button>

В вашем случае он не смог найти функцию showAlert, потому что он находится в модуле. Другой способ - переместить функцию showAlert из модуля для тестирования, которая тоже должна работать!

См. Скрипку для примера: fiddle