从离子模型服务

时间:2017-01-18 09:49:21

标签: angularjs ionic-framework

我为一个模型创建了一个工厂,它引入了一个数组(列表),我有一个ng-click,我得到了index,然后得到了我想通过的object对象回到我的控制器,然后我可以使用它。

我不确定如何将对象传回控制器。

这是我的服务中的函数,它为模态​​触发open(),并且我将它从休息调用中传递给它。

function CopyModalService($ionicModal, $rootScope) {
var $scope = $rootScope.$new(),
  myModalInstanceOptions = {
    scope: $scope,
    animation: 'slide-in-up'
  };

return {
  open: open
};

function open(model) {
  $ionicModal.fromTemplateUrl('templates/copy-modal.html',
    myModalInstanceOptions)
    .then(function (modalInstance) {

      $scope.model = model;

      $scope.addCopyCertificate = function(index){
        console.log('click', $scope.model[index]);
      };
      $scope.close = function () {
        closeAndRemove(modalInstance);
      };
      return modalInstance.show(model);
    });

}

这是模态中的html,所以你可以得到图片

<ul class="list">
    <li class="item row" ng-repeat="item in model">
      <span class="col col-67">{{item.installerReference}}</span>
      <span class="col">
      <button class="button button-calm button-calm-search ion-ios-arrow-down"
              ng-click="addCopyCertificate($index)"></button>
    </span>
    </li>
  </ul>

当我点击html addCopyCertificate()中的按钮时,一切都显示正常,但如何将其传回控制器。

在我的控制器中,我正在使用它:(正在运行)

if (res.length) {
        CopyModalService.open(res);
      }else{
        Alert.showAlert('No matching certificates');
       ....
      }

1 个答案:

答案 0 :(得分:0)

$rootScope.$broadcast怎么样?类似的东西:

function CopyModalService($ionicModal, $rootScope) {
var $scope = $rootScope.$new(),
  myModalInstanceOptions = {
    scope: $scope,
    animation: 'slide-in-up'
  };

return {
  open: open
};

function open(model) {
  $ionicModal.fromTemplateUrl('templates/copy-modal.html',
    myModalInstanceOptions)
    .then(function (modalInstance) {

      $scope.model = model;

      $scope.addCopyCertificate = function(index){
        console.log('click', $scope.model[index]);
$rootScope.$broadcast('update-controller',$scope.model[index]);
      };
      $scope.close = function () {
        closeAndRemove(modalInstance);
      };
      return modalInstance.show(model);
    });

}

然后当你想获得值时..使用$rootScope.$on('')(或更好的$scope.$on())听取监听器..像

这样的东西
if (res.length) {
        CopyModalService.open(res);
$scope.$on('update-controller',function(event, data){
console.log(data);
});
      }else{
        Alert.showAlert('No matching certificates');
       ....
      }