簡體   English   中英

AngularJS和ui-bootstrap注入錯誤(?)

[英]AngularJS and ui-bootstrap injection error(?)

如果這個錯誤有點簡單,請原諒我,但是我似乎遇到了這些注入錯誤,firefox中的調試器似乎對我沒有幫助。 這里的代碼片段

這是有問題的控制器文件

App.controller('ModalInstanceCtrl', function ($scope,$uibModal, menuAppetizers) {
$scope.menuAppetizers; });

App.controller('AppetizerMenuController',
     ['$rootScope', '$scope', '$http', 'ParseService', '$location', '$q', '$uibModal',
     function ($rootScope, $scope, $http, $location, ParseService, $q, $uibModal) {
       //.... needless code not related to the problem

       $scope.open = function (_menuAppetizer) {
         console.log("We get into the modal open");
         var modalInstance = $uibModal.open({
             controller: 'ModalInstanceCtrl',
             templateUrl: "Views/menu/myModal.html",
             resolve: function () {
                 return _menuAppetizer;
             }
         });
     }
 }]);

在我要求ui-bootstrap的app.js文件中:

var App = angular.module('App',
 ['ngRoute', "ui.bootstrap"])

在我看來,這看起來不錯。 這包括我項目的大部分路由。

AppetizersController的視圖僅顯示模式片段:

<button type="button" class="btn btn-default btn-sm" ng-click="open(menuAppetizers)"
   data-toggle="modal" data-target="#myModal.html">Nutrition Info</button>

哪個應該轉到modal.html並打開此處列出的內容

<div class="modal fade" id="myModal.html" role="dialog">
  <div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Nutrition Info</h4>
        </div>
        <div class="modal-body">
            <p>Calories: {{menuAppetizers.NutritionInfo}}</p>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
    </div>
</div>

抱歉,如果我沒有發布足夠的代碼,我可以使模態正常工作,但是當我嘗試使用$ modal.open時,它會返回注射器錯誤。 我注射有誤嗎? 我查了一下這個問題,似乎遵循了ui-bootstrap文檔中的規則。 我想念什么嗎? 我對angularjs / ui-bootstrap很陌生。

錯誤我得到:

Error: [$injector:unpr] http://errors.angularjs.org/1.4.7/$injector/unpr?p0=menuAppetizersProvider%20%3C-%20menuAppetizers%20%3C-%20ModalInstanceCtrl

 e/<() angular.min.js:107
 Ze/this.$get</<() angular.min.js:80
 f/<() angular.min.js:119
 lf/this.$get</n.prototype.$eval() angular.min.js:133
lf/this.$get</n.prototype.$digest() angular.min.js:130
lf/this.$get</n.prototype.$apply() angular.min.js:133
 h() angular.min.js:87
 K() angular.min.js:91
 Sf/</z.onload()

注入中有一個錯誤:

App.controller('ModalInstanceCtrl', ['$scope', '$uibModal', 'menuAppetizers',function ($scope,$uibModal, menuAppetizers) {
$scope.menuAppetizers; }]);

App.controller('AppetizerMenuController',
     ['$rootScope', '$scope', '$http', '$location', 'ParseService', '$q', '$uibModal',
     function ($rootScope, $scope, $http, $location, ParseService, $q, $uibModal) {
.... needless code not related to the problem

'ParseService', '$location', '顛倒了。

您的決心應該是:

resolve: {
    menuAppetizers: function () {
        return _menuAppetizer;
    }
}

在您的控制器中,您聲明了menuAppetizers依賴項,但在您的解決方案中,您沒有聲明menuAppetizers對象,而是聲明了一個函數,這就是它不起作用的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM