在modal angularjs中调用$ state.go

时间:2017-09-26 14:41:03

标签: javascript angularjs angular-ui-bootstrap

我在我的模态的控制器中添加了一个$ state.go,在我的提交按钮功能上,第一次调用时,但是当我再次打开模态并再次提交时,$ state.go didn& #39; t invocked。

ModalCtrler.js

$scope.addElet= function(){
  ------ 
  $state.go('state1',{OBJ: OBJ});   
}

模态在我的运行app.js中定义:

myApp.run(function($rootScope, $modal,$state) {
    $rootScope.$on('$stateChangeStart', function(event, toState,toParams) {
    if (toState.name == 'addPopup') {

            $modal.open({
                templateUrl : 'add.html',
                controller : 'ModalCtrler',
                backdrop: 'static',
                keyboard: false,


            });

            event.preventDefault();

        } 

    }

}

当我点击ui-serf时调用模态:

<a ui-sref="addPopup({OBJ: OBJ})">
    <button type="button" class="btn btn-add pull-right">ADD</button>
</a>

我在代码中遗漏了什么? anu想法?

2 个答案:

答案 0 :(得分:1)

通过重新编码状态解决问题:

 $state.go('state1', {OBJ: OBJ}, { "reload": 'state1''}); 

感谢link stackoverflow

答案 1 :(得分:0)

我认为你的问题是:

在致电$state.go('state1',{OBJ: OBJ});

之前,您没有对模态做任何事情

尝试隐藏并仅在致电$state.go

之后
var modalInstance = $modal.open({
            templateUrl : 'add.html',
            controller : 'ModalCtrler',
            backdrop: 'static',
            keyboard: false,
        });

等等:

$scope.addElet= function(){
  $modalInstance.close();  // or $modalInstance.dismiss();
  $state.go('state1',{OBJ: OBJ});   
}