2016-07-22 73 views
1

我在AungarJS单页应用程序中使用ui.router量身定做的,我想引导情态动词在我的应用程序从这个链接整合:在单页AngularJS应用程序中使用引导模态

http://angular-ui.github.io/bootstrap/#/getting_started

但到目前为止,我的积分失败严重。这是因为链接说,在UI路由器的情况下,我需要在配置中使用$uibResolve.setResolver('$resolve')。但使用$uibResolve会导致注射错误。

我的问题:如何将Bootsrap Modals集成到我的单页应用程序的上述链接中?

+0

您使用的是1.0之前的UI路由器的版本? “如果想要使用UI路由器的** 1.0之前的解析机制来解决模式问题,可以在应用程序” –

+0

“的配置阶段调用$ uibResolve.setResolver('$ resolve')。我如何使这个工作更高版本? –

+0

我不知道,但如果我不得不猜测,你就不需要那么做。可能是开箱即用 –

回答

0

你应该注入$uibResolveProvider并呼吁$uibResolveProvider.setResolver('$resolve')

https://docs.angularjs.org/guide/providers

**服务对象在配置阶段不可用,但提供实例(见上unicornLauncherProvider例子)。

0

简短回答:Configure this using the onEnter property of the state config to open a modal when you transition to that state

从您的问题中不清楚您使用的是哪个版本的angular,ui-bootstrap和ui-router,但我创建了一个演示片段。它应该适应你的情况,除非你使用每个版本的旧版本。

var app = angular.module('uiRouterModal', ['ui.router', 'ui.bootstrap']); 
 

 
app.config(function($stateProvider, $urlRouterProvider){ 
 
    $urlRouterProvider.otherwise("/"); 
 
    $stateProvider 
 
    .state('index', { 
 
    url: '/', 
 
    template: '<h2>Base state</h2>' 
 
    }) 
 
    .state('modal', { 
 
    url: '/modal', 
 
    onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) { 
 
     $uibModal.open({ 
 
     template: [ 
 
     '<div class="modal-content">', 
 
      '<div class="modal-header">', 
 
      '<h3 class="modal-title">Modal state</h3>', 
 
      '</div>', 
 
      '<div class="modal-body">', 
 
      'I did it!', 
 
      '</div>', 
 
      '<div class="modal-footer">', 
 
      '<button class="btn btn-primary" ng-click="dismiss()">OK</button>', 
 
      '</div>', 
 
     '</div>' 
 
     ].join(''), 
 
     resolve: {}, // can resolve any data and pass to controller 
 
     controller: function($uibModalInstance, $scope){ 
 
      $scope.dismiss = function() { 
 
      $uibModalInstance.dismiss(); 
 
      }; 
 
     } 
 
     }); 
 
    }] 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html ng-app="uiRouterModal"> 
 

 
    <head> 
 
    <meta charset="utf-8" /> 
 
    <title>UI-Router and UI-Bootstrap Modal</title> 
 
    <script>document.write('<base href="' + document.location + '" />');</script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script data-require="[email protected]" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular.js"></script> 
 
    <script data-require="[email protected]" data-semver="0.3.1" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.js"></script> 
 
    
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.1.0/ui-bootstrap-tpls.js"></script> 
 
    <script src="script.js"></script> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" /> 
 
    </head> 
 

 
    <body> 
 
    <ui-view></ui-view> 
 
    <a ui-sref="modal">Click for modal</a> 
 
    </body> 
 

 
</html>

相关问题