2

コードは、ui-bootstrapチュートリアルからほぼまっすぐです。私は私のホームページ上のボタンを持ってNGクリックモーダルウィンドウを開くために、私はdevのツールに受信エラーがある:

Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider <- $uibModalInstance <- modalController

と、このエラーメッセージにmodalControllerを追加した後、それぞれをクリックし、以下のような

Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider <- $uibModalInstance <- modalController <- modalController

Error: [$injector:unpr] Unknown provider: $uibModalInstanceProvider <- $uibModalInstance <- modalController <- modalController <- modalController

home.js

'use strict'; 

angular.module('myApp') 
    .controller('homeCtrl', ['$q', '$state', '$timeout', '$scope', '$http', '$filter', 
    '$uibModal', function($q, $state, $timeout, $scope, $http, $filter, $uibModal){ 

$scope.open = function (size){ 
    var modalInstance = $uibModal.open({ 
    animation: $scope.animationsEnabled, 
    templateUrl: 'app/main/searchModal.html', 
    controller: 'modalController', 
    size: size, 
    resolve: { 
     items: function() { 
     return $scope.items; 
     } 
    } 
    }); 

    modalInstance.result.then(function (selectedItem) { 
    $scope.selected = selectedItem; 
    }, function() { 
    }); 
}; 
... 

modalcontroller.js

'use strict'; 

angular.module('myApp') 
.controller('modalController', ['$scope', '$uibModalInstance', function($scope, $uibModalInstance) { 
    $scope.items = items; 
    $scope.selected = { 
    item: $scope.items[0] 
    }; 

    $scope.ok = function() { 
    $uibModalInstance.close($scope.selected.item); 
    }; 

    $scope.cancel = function() { 
    $uibModalInstance.dismiss('cancel'); 
    }; 
    $uibModalInstance.close(); 
}]); 

答えて

1

問題は私たちの(ライブラリの)終わりです。 0.14.0をリリースし、すべてのuib接頭辞を追加したとき、それをmodalInstanceに追加するのを忘れました。この問題は0.14.3で修正されました。

0.14.0 - 0.14.2でこの問題を解決するには、代わりに$modalInstanceを使用し、1.0にアップグレードするときには$uibModalInstanceに変更する必要があります。

Here's a link GitHubに関する。

1

すべてが正しく見えます。

angular.module('myApp', ['ui.bootstrap']) 

そして、あなたは、プレフィックスの変更があり、角度-UI-ブートストラップのバージョンを使用していること:チェックするもう一つは、角-UI-ブートストラップライブラリは、アプリケーションの依存関係に注入なっていることを確認することです。バージョン0.14.0では 'uib'接頭辞が導入され、バージョン1.0.0では接頭辞なしのコンポーネントのサポートが削除されました。バージョン0.14.0より前は、$ uibModalInstanceは$ modalInstanceでした。

+0

'angular.module( 'て、myApp'、[ 'ngCookies' 'ngResource' 'ngSanitize' 'ngAnimate' 'ui.router' 'ui.bootstrap' 「スマート'tu'、 'nvd3'、 'angucomplete-alt' ])は私の依存関係です。私はAngular 1.4.7と0.14.0 ui-bootstrapを使用していますので、そこに問題はありません。それぞれのクリックが別の 'modalController'を追加するという事実は、本当に私を怒らせるものです。 – heliotrope

関連する問題