নির্দেশক '…' দ্বারা প্রয়োজনীয় কন্ট্রোলার 'এনজিমডেল' সন্ধান করা যায় না


88

এখানে কি হচ্ছে?

আমার নির্দেশটি এখানে:

app.directive('submitRequired', function (objSvc) {
    return {
        require: 'ngModel',
        link: function (scope, elm, attrs, ctrl) {

          // do something
        }
    };
});

এখানে ব্যবহারের দিকনির্দেশনার একটি উদাহরণ:

<input submit-required="true"></input>

এখানে আসল ত্রুটি পাঠ্য:

Error: [$compile:ctreq] Controller 'ngModel', required by directive 'submitRequired', can't be found!
http://errors.angularjs.org/1.2.2/$compile/ctreq?p0=ngModel&p1=submitRequired
    at http://www.domain.ca/Scripts/angular/angular.js:78:12
    at getControllers (http://www.domain.ca/Scripts/angular/angular.js:5972:19)
    at nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6139:35)
    at compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15)
    at nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6132:24)
    at compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15)
    at publicLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5458:30)
    at http://www.domain.ca/Scripts/angular/angular.js:1299:27
    at Scope.$get.Scope.$eval (http://www.domain.ca/Scripts/angular/angular.js:11634:28)
    at Scope.$get.Scope.$apply (http://www.domain.ca/Scripts/angular/angular.js:11734:23) <input submit-required="true"> angular.js:9159
(anonymous function) angular.js:9159
$get angular.js:6751
nodeLinkFn angular.js:6141
compositeLinkFn angular.js:5550
nodeLinkFn angular.js:6132
compositeLinkFn angular.js:5550
publicLinkFn angular.js:5458
(anonymous function) angular.js:1299
$get.Scope.$eval angular.js:11634
$get.Scope.$apply angular.js:11734
(anonymous function) angular.js:1297
invoke angular.js:3633
doBootstrap angular.js:1295
bootstrap angular.js:1309
angularInit angular.js:1258
(anonymous function) angular.js:20210
trigger angular.js:2315
(anonymous function) angular.js:2579
forEach angular.js:300
eventHandler angular.js:2578ar.js:7874

উত্তর:


127

এখানে বর্ণিত হিসাবে: কৌণিক এনজিএমডেলকন্ট্রোলার , আপনার <inputপ্রয়োজনীয় নিয়ামক সরবরাহ করা উচিতngModel

<input submit-required="true" ng-model="user.Name"></input>

4
পারফেক্ট আমি ওটার তারিফ করি! আমি এটি উত্তর হিসাবে চিহ্নিত করব। আমার একটি ফলোআপ প্রশ্ন আছে। আমার কি অন্য প্রশ্ন পোস্ট করা উচিত বা আমার আসলটি পরিবর্তন করা উচিত?
শন লুটিন

এখানে ফলো আপ হয় stackoverflow.com/questions/21807929/...
শন Luttin

4
আমি ভুল করে টাইপ করেছি ng-modelsএবং এই ত্রুটি পেয়েছি।
chovy

@ রাদিম কোহলার আমি খুশি যে আপনার প্রতিক্রিয়া আসলে অভাবী কাউকে সাহায্য করেছে, আমি নিজেও এটি অর্জনের খুব কাছাকাছি। উপরের ইনপুট বিবৃতি থেকে, "এনজি-মডেল" বৈশিষ্ট্যের জন্য আমি "{oot রুটবজেক্টনাম +" "এর মতো স্ট্রিং কনটেনটেশন ব্যবহার করতে পারি" "+ মডেলনাম}}" ?? !! যেহেতু $ স্কোপটিতে আমার মডেলগুলি সোজা নয় এবং ডিবির ইনপুট উপর ভিত্তি করে নিয়ামকটিতে গতিশীলভাবে তৈরি হয়েছে
pavan kumar

@pavankumar এই লিঙ্কে চেক next.plnkr.co/edit/... এই ng-model="RootObject[alias]"যদি অধিবেশন থাকবে কাজ করবে '$ scope.RootObject = {}; $ scope.alias = "Firstname" `... ওরফে এর instaead, এমনকি foreach গতিশীল নাম প্রদান করতে পারে
Radim Kohler

8

এই ইস্যুটির একটি সম্ভাব্য সমাধান ng-modelবৈশিষ্ট্য হ'ল সেই নির্দেশটি ব্যবহার করতে হবে।

সুতরাং 'এনজি-মডেল' বৈশিষ্ট্যে যুক্ত করা সমস্যার সমাধান করতে পারে।

<input submit-required="true" ng-model="user.Name"></input>

এই আমার সমাধান। ধন্যবাদ আমি মনে করি আমরা এনজি-চেঞ্জকে ট্রিগার করতে পয়েন্টটি মিস করেছি, উপাদানটির সাথে একটি এনজি-মডেল বাইন্ড হওয়া উচিত।
antonD

1

আপনি লাইনটিও সরাতে পারেন

  require: 'ngModel',

আপনি যদি ngModelএই নির্দেশিকা প্রয়োজন না। অপসারণ ngModelআপনাকে সেই ngModelত্রুটি ছাড়াই নির্দেশিকা তৈরি করার অনুমতি দেবে ।


0

আমিও একই ত্রুটির মুখোমুখি হয়েছি, আমার ক্ষেত্রে আমি এনজি-মডেলের "এনজি-মোয়েল" এর মতো কিছু বানান মিস করেছি miss

ভুল এক: এনজি-মোয়েল = "ইউজারআরনাম" ডান এক: এনজি-মডেল = "ইউজারআরনেম"

এখানে চিত্র বর্ণনা লিখুন

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