2016-01-21 77 views
3

我创建了一个项目$ionicPopup。我把$ionicPopup代码放在.factory。在我的$ionicPopup.show()中,我要求用户输入一个值。在用户已经输入了该值后,它会提醒用户写入的值。

我也检查了以下帖子,但仍然无法解决我的问题Access scope inside an angular js factory

因此,这里是我的代码:

控制器

.controller('PopupCtrl',function($scope, $ionicPopup, $timeout, popupService) { 

// Triggered on a button click, or some other target 
$scope.showPopup = function() { 

    var showParameter = { 
    title: "Test", 
    cssClass: "", 
    subTitle: "Insert any value", 
    template: '<input type="text" ng-model="value">', 
    templateUrl: "", 
    buttons: { 
     cancelText: "Reject", 
     cancelType: "button-assertive", 
     okText: "Accept", 
     okType: "button-positive" 
    } 
    } 

    // An elaborate, custom popup 
    popupService.show(showParameter, $scope).then(function(res) { 
    console.log('Tapped!', res); 
    alert("value: " + res); 
    }); 
    }; 
}) 

工厂

.factory('popupService', function ($ionicPopup) { 
    return{ 
     show: function(param, scope){ 
      var show = $ionicPopup.show({ 
       title: param.title, // String. The title of the popup. 
       cssClass: param.cssClass, // String, The custom CSS class name 
       subTitle: param.subTitle, // String (optional). The sub-title of the popup. 
       template: param.template, // String (optional). The html template to place in the popup body. 
       templateUrl: param.templateUrl, // String (optional). The URL of an html template to place in the popup body. 
       scope: scope, // Scope (optional). A scope to link to the popup content. 
       buttons: [{ // Array[Object] (optional). Buttons to place in the popup footer. 
       text: param.buttons.cancelText, 
       type: param.buttons.cancelType, 
       onTap: function(e) { 
        return false; 
       } 
       }, { 
       text: param.buttons.okText, 
       type: param.buttons.okType, 
       onTap: function(e) { 
        // Returning a value will cause the promise to resolve with the given value. 
        return scope.value; 
       } 
       }] 
      }); 
      return show; 
     } 
    } 
}); 

DEMO:http://codepen.io/aishahismail/pen/pgpdGW?editors=101

你的帮助确实需要。谢谢。

回答