【问题标题】:How do I use ui.bootstrap in a MeanJS controller?如何在 MeanJS 控制器中使用 ui.bootstrap?
【发布时间】:2016-05-03 16:39:10
【问题描述】:

每次我尝试使用 ui.bootstrap 中的任何引导函数时,都会收到以下错误:

Error: [$injector:unpr] Unknown provider: ui.bootstrapProvider <- ui.bootstrap <- CollapseController...

我已经尝试了许多不同的方法来解决这个问题,但我被困在这一点上。现在我只是想在 cmets 视图上做一个切换开关。这是我的控制器:

angular.module('remarks').controller('CollapseController', ['$scope', 'ui.bootstrap', 'ngAnimate',
  function ($scope) {
    $scope.isCollapsed = false;
  }
]);

这是默认控制器 (RemarksController) 的附加控制器,我已将备注模块注册为:

ApplicationConfiguration.registerModule('remarks', ['ngAnimate', 'ui.bootstrap']);

最后,这是试图使用这个控制器的视图:

<section ng-controller="RemarksController" ng-init="find()">
  <div><h6>Remarks</h6></div>
<div class="container">
  <div class="post-remarks">
    <div class="row">
      <div class="media"  ng-controller="CollapseController">
        <div class="media-heading">
          <button class="btn btn-default btn-xs" type="button" ng-click="isCollapsed = !isCollapsed">
          <span class="glyphicon glyphicon-minus" ng-if="(!isCollapsed)"></span>
          <span class="glyphicon glyphicon-plus" ng-if="isCollapsed"></span> 
          </button> 
        </div>

        <div class="panel-collapse collapse in" uib-collapse="isCollapsed">
          (content)
        </div>

请理解,我可以想办法解决这个问题,以不同的方式执行这一操作。但是,我不想。我希望能够使用 ui-bootstrap 功能,所以我试图在这里找到问题的根源。

如何让 ui.bootstrap 依赖项注入,以便在此控制器中使用它?

谢谢

【问题讨论】:

    标签: angularjs twitter-bootstrap meanjs


    【解决方案1】:

    ui.bootstrap 默认由 MEAN 4.X 添加。无需在控制器中注册。

    https://github.com/meanjs/mean/blob/master/modules/core/client/app/config.js

    我没有看到您的代码有问题.. http://jsfiddle.net/zdyv90w1/1/

    var app = angular.module('app', []);
    
    app.controller('CollapseController', function($scope) {
      $scope.isCollapse = false;
    
    });
    

    【讨论】:

    • 感谢您的回答。但是我还没有“检查”它,因为问题仍然没有解决。我不再收到任何 javascript 错误,但同时 ui.bootstrap 功能不起作用。我单击切换按钮,没有任何切换,并且该值保持为假。这也发生在你的小提琴中。有什么想法吗?
    • 好吧,没关系,我一定使用的是旧版本的文档。我使用的是属性“uib-collapse”,而不仅仅是“collapse”。它现在正在工作。
    • 实际上,我使用的是当前文档,但 MEANJS 使用的是旧版本的 ui-bootsrap。由于某种原因,新版本在事物前面使用了“uib”。
    • @tutley 遇到了同样的问题,使用 angular-bootstrap v0.13.4 文档解决了我的问题。这是你的同一个版本吗?
    猜你喜欢
    • 2015-06-16
    • 2016-10-19
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2014-10-23
    • 2015-03-24
    相关资源
    最近更新 更多