app.js中的离子打开模态

时间:2015-05-26 03:35:40

标签: angularjs ionic-framework

我正在尝试实现Web意图,并且当用户与我的应用程序共享内容并希望获得一些文本时需要显示弹出窗口。

    if (window.plugins && window.plugins.webintent) {

        var incomingURL;
        window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT,function(url) {
            incomingURL = url
             var myPopup = messageAlert.saveData(url);

      }, function() {
        incomingURL = false;
      }
  );

这里的messageAlert是一家工厂。我想显示一个模态或弹出窗口,用户可以输入一些文本,我可以使用未来。

.factory('messageAlert', function ($ionicPopup,$timeout,$ionicModal) {
    return {
      saveData : function(url) {
         // here i tried different scenes. but nothing work out. 
        // i want a form where user can input some data and save 
      }
    }

}

任何人都可以给我一些想法

2 个答案:

答案 0 :(得分:0)

以下是调试问题的一些想法:

  1. 当您在alert('YES THIS WORKS!')工厂中放置一个简单的messageAlert.saveData()时,它是否有效?
  2. 您确定使用指定的附加内容调用了该应用吗?请参阅:https://github.com/Initsogar/cordova-webintent#hasextra

答案 1 :(得分:0)

据我了解,您的问题不是让webintent工作,而只是显示$ionicPopup

所以我看到的主要问题是你在工厂内注入了$ionicPopup。由于您希望在视图上显示弹出窗口,因此需要将其注入控制器中。你可以在那里创建一个这样的弹出窗口:

$ionicPopup.prompt({
   title: 'Your title text',
   template: 'Please enter your text here',
   inputType: 'text',
   inputPlaceholder: 'Your text here'
 }).then(function(res) {
   // after the user typed something, this result callback will be called
   // res will contain the text which your user entered
 });

您可以找到具有可能设置的相应文档here

尝试将其与上面的代码合并,我会建议这样的事情:

.controller('YourCtrl', function($ionicPopup, messageAlert) {

    this.someFunction = function() {

        if (window.plugins && window.plugins.webintent) {
            var incomingURL;
            window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT,function(url) {
                incomingURL = url;

                // open the text input popup
                var myPopup = $ionicPopup.prompt({
                   title: 'Your title text',
                   template: 'Please enter your text here',
                   inputType: 'text',
                   inputPlaceholder: 'Your text here'
                });

                // after the user typed something, this result callback will be called
                myPopup.then(function(userText) {
                   // userText contains the text which your user entered
                   // now you can save the data with your factory
                   messageAlert.saveData(incomingURL, userText);
                });

            }, function() {
                incomingURL = false;
            });
        }
    };
});

请注意,我没有测试后一个代码,因为我不了解您的确切用例。