অজানা সরবরাহকারী: ular মোডালপ্রাইডার <- Ang অ্যাঙ্গুলারজেএস সহ মডেল ত্রুটি


97

বুটস্ট্র্যাপ মডেল উইন্ডোটি বাস্তবায়নের চেষ্টা করায় আমি এই ত্রুটিটি গ্রহণ করে চলেছি। এর কারণ কী হতে পারে? আমি এখানে http://angular-ui.github.io/bootstrap/#/modal থেকে সমস্ত কিছু অনুলিপি / আটকানো করেছি ।

উত্তর:


197

আপনি যখন কোনও নিয়ামক, পরিষেবা ইত্যাদির জন্য নির্ভরতাতে লিখেন এবং আপনি সেই নির্ভরতা তৈরি বা অন্তর্ভুক্ত করেননি তখন এই জাতীয় ত্রুটি দেখা দেয়।

এই ক্ষেত্রে, $modalএকটি পরিচিত সেবা নয়। মনে হচ্ছে আপনি কৌণিক বুটস্ট্র্যাপ করার সময় আপনি নির্ভরতা হিসাবে ইউআই-বুটস্ট্র্যাপে পাস করেন নি। angular.module('myModule', ['ui.bootstrap']);এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি ui-বুটস্ট্র্যাপ (0.6.0) এর সর্বশেষতম সংস্করণটি ব্যবহার করছেন, কেবল নিরাপদ থাকতে।

ত্রুটিটি ০.০.০ সংস্করণে নিক্ষেপ করা হয়েছে তবে 0.6.0 এ আপডেট করা $ মডেল পরিষেবাটি উপলব্ধ করে। সুতরাং, 0.6.0 সংস্করণে আপডেট করুন এবং আপনার মডিউলটি নিবন্ধভুক্ত করার সময় ui.boostrap প্রয়োজন তা নিশ্চিত হন।

আপনার মন্তব্যের জবাব: আপনি এভাবেই কোনও মডিউল নির্ভরতা ইনজেক্ট করেন।

<!-- tell Angular what module we are bootstrapping -->
<html ng-app="myApp" ng-controller="myCtrl">

জেএস:

// create the module, pass in modules it depends on
var app = angular.module('myApp', ['ui.bootstrap']);

// $modal service is now available via the ui.bootstrap module we passed in to our module
app.controller('myCtrl', function($scope, $uibModal) {

});

হালনাগাদ:

$modalসেবার নাম পরিবর্তন করা হয়েছে $uibModal

Ib uibModal ব্যবহারের উদাহরণ

// create the module, pass in modules it depends on
var app = angular.module('myApp', ['ui.bootstrap']);

// $modal service is now available via the ui.bootstrap module we passed in to our module
app.controller('myCtrl', function($scope, $uibModal) {
    //code here
});

4
আমি ui.bootstrap যোগ করেছি এবং এখনও একই ত্রুটি পেয়েছি? আমাদের কি স্ট্র্যাপ নির্দেশিকা যুক্ত করতে হবে? এখানে যেমন
স্ট্যাকওভারফ্লো.

4
@ রানাধির আপনার লিঙ্কটি কৌণিক-স্ট্র্যাপ সম্পর্কিত (এটি একটি ভিন্ন লাইব্রেরি)। আমি যেমন বলেছি, আপনি হয় ইউআই-বুটস্ট্র্যাপের পুরানো সংস্করণ ব্যবহার করছেন বা আপনি নির্ভরতা যুক্ত করেননি। অন্য উত্তরটিও প্রাসঙ্গিক, আপনি যখন নামকরণ করার সময় নামটি পাস করতে হবে তবে এটি এই মুহুর্তে আপনি ক্ষুদ্রাকৃতির সাথে কাজ করছেন বলে মনে হচ্ছে না।
m59

4
হাই @ এম 59। তুই আচার। আমি ইউআই-বুটস্ট্র্যাপের পুরানো সংস্করণ অন্তর্ভুক্ত করেছি। এখন আমি নতুন সংস্করণটি অন্তর্ভুক্ত করেছি এবং এটি ভাল কাজ করছে। আপনাকে অনেক ধন্যবাদ :-)
রানাধির রেড্ডি

59
$ মডেলটি এখন uibModal পড়তে হবে। এটি কোন সংস্করণে পরিবর্তিত হয়েছে তা নিশ্চিত নয়, তবে আমি আর কাজ করে না before মডেল কাজ করার জন্য দীর্ঘ সময় চেষ্টা করে ব্যয় করেছি ... al মডেলআইনস্ট্যান্সের জন্যও, এটি তৈরি করুন ib #ModalInstance
15-29

7
এটি লজ্জাজনক তারা বারবার এটি পরিবর্তন করে। প্রথম $ কথোপকথন, তারপরে $ মডেল, এখন $ uibModal। শুধু অসুস্থ। উত্তর আপডেট করার জন্য ধন্যবাদ। আমাকে সাহায্য করে ছিল.
স্টিভেন

54

5 বছর পরে (এই সময়ে সমস্যাটি হত না) :

নাম স্থান পরিবর্তন হয়েছে - বুটস্ট্র্যাপ-ইউআই এর নতুন সংস্করণে আপগ্রেড করার পরে আপনি এই বার্তাটি জুড়ে হোঁচট খেতে পারেন ; আপনি $uibModal& পড়ুন প্রয়োজন $uibModalInstance


ধন্যবাদ আমি দুটি অ্যাপ্লিকেশনের জন্য একই কোড ব্যবহার করেছি তবে এটি সর্বশেষের জন্য কাজ করছে না। এই নামকরণের পরিবর্তনটি কার্যকারী অ্যাপ্লিকেশনটিকে ভেঙে দিতে পারে !!!
Tchaps

4
ধন্যবাদ !, সংস্করণ 1.0.0 হিসাবে $ মোডাল এবং $ মোডালআইনস্ট্যানস অবচিত করা হয়েছে, এখানে
চেঞ্জলগ

al modalInstance আমার পক্ষে পুরোপুরি কার্যকর হয়নি। ib uibModalInstance করেছেন
কমান্ডজেড

22

আমি আজও অভিজ্ঞ একটি সমস্যার জন্য কেবলমাত্র একটি অতিরিক্ত পার্শ্ব নোট: যখন আমি সংক্ষিপ্তকরণ / উগলিফাই চালু করি তখন আমার একই রকম ত্রুটি ঘটেছিল "অজানা সরবরাহকারী: $ একটি সরবরাহকারী" আমার উত্স কোডটি ।

কৌণিক ডকস টিউটোরিয়ালে উল্লিখিত হিসাবে (অনুচ্ছেদ: "মিনিফাইজে একটি নোট") আপনাকে নির্ভরতা ইনজেকশনের জন্য উল্লেখগুলি সঠিকভাবে রাখা হয়েছে তা নিশ্চিত করার জন্য আপনাকে অ্যারে সিনট্যাক্সটি ব্যবহার করতে হবে:

var PhoneListCtrl = ['$scope', '$http', function($scope, $http) { /* constructor body */ }];

জন্য কৌণিক UI 'তে বুটস্ট্র্যাপ উদাহরণ তাহলে আপনি এই এই প্রতিস্থাপন করা উচিত উল্লেখ:

var ModalInstanceCtrl = function ($scope, $modalInstance, items) { 
   /* ...example code.. */
}

এই অ্যারে স্বরলিপি সহ:

var ModalInstanceCtrl = ['$scope', '$modalInstance', 'items', function ($scope, $modalInstance, items) { 
   /* copy rest of example code here */ 
}];

এই পরিবর্তনটির সাথে আমার মিনিফায়েড কৌণিক UI মডেল উইন্ডো কোডটি আবার কার্যকরী হয়েছিল।


আমি মনে করি না তিনি এখনই সংশোধন নিয়ে কাজ করছেন, তবে এটি লক্ষণীয় কারণ এটি একই সমস্যাটির কারণ হতে পারে।
m59

মধ্যে একটি চেহারা আছে github.com/btford/ngmin আপনি minification পূর্বে এটি চালানোর পারবেন না। তারপরে আপনি শর্টফর্মটি লিখতে পারেন এবং ডিআইজি উপর আর্গুমেন্টের নামগুলির উপর নির্ভর করতে পারেন যখন মিনিফিকেশন এখনও এনজিমন হিসাবে কাজ করে অ্যারের সংস্করণে প্রসারিত হয় না।
পাস্কাল

11

সরবরাহকারীর ত্রুটির সুস্পষ্ট উত্তর হ'ল ইউআই-বুটস্ট্র্যাপ যুক্ত করার ক্ষেত্রে মডিউল ঘোষণা করার সময় অনুপস্থিত নির্ভরতা। আমরা যে জিনিসটির মধ্যে অনেকেই অ্যাকাউন্ট না করি তা হ'ল নতুন প্রকাশে আপগ্রেড করার সময় ব্রেকিং পরিবর্তনগুলি breaking হ্যাঁ, নীচেরগুলিতে কাজ করা উচিত এবং সরবরাহকারীর ত্রুটি বাড়ানো উচিত নয়:

var app = angular.module('app', ['ui.router', 'ngRoute', 'ui.bootstrap']);
app.factory("$svcMessage", ['$modal', svcMessage]);

আমরা যখন ইউআই-বুস্ট্র্যাপের একটি নতুন সংস্করণ ব্যবহার করি তখন বাদে। মডেল সরবরাহকারী এখন হিসাবে সংজ্ঞায়িত করা হয়:

.provider('$uibModal', function() {
    var $modalProvider = {
      options: {
        animation: true,
        backdrop: true, //can also be false or 'static'
        keyboard: true
      },

এখানে পরামর্শটি একবার হ'ল আমরা নিশ্চিত হয়েছি যে নির্ভরতা অন্তর্ভুক্ত রয়েছে এবং আমরা এখনও এই ত্রুটি পেয়েছি, আমরা জেএস লাইব্রেরির কোন সংস্করণ ব্যবহার করছি তা যাচাই করা উচিত। আমরা দ্রুত অনুসন্ধানও করতে পারি এবং ফাইলটিতে সেই সরবরাহকারীর উপস্থিতি রয়েছে কিনা তাও দেখতে পারি।

এই ক্ষেত্রে, মডেল সরবরাহকারী এখন নিম্নলিখিত হিসাবে হওয়া উচিত:

app.factory("$svcMessage", ['$uibModal', svcMessage]);

আরও একটি নোট। আপনার ইউআই-বুটস্ট্র্যাপ সংস্করণটি আপনার বর্তমান অ্যাঙ্গুলারজ সংস্করণটিকে সমর্থন করে তা নিশ্চিত করুন। যদি তা না হয় তবে আপনি অন্যান্য ত্রুটিগুলি যেমন টেমপ্লেটপ্রাইডার পেতে পারেন।

তথ্যের জন্য এই লিঙ্কটি পরীক্ষা করুন:

http://www.ozkary.com/2016/01/angularjs-unعلوم-provider-modalprovider.html

আশা করি এটা সাহায্য করবে.


এবং ইউআই বুটস্ট্র্যাপ উইকিতে সমস্ত উপসর্গ পরিবর্তনের তালিকা রয়েছে।
বিজয়

7

আমার সমস্ত নির্ভরতা অন্তর্ভুক্ত ছিল কিনা তা যাচাই করার পরে, নাম পরিবর্তন $modalকরে $uibmodalএবং এটিকে সমস্যার $modalInstanceসমাধান করেছি$uibModalInstance


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.