/ / एक ही तत्व पर पृथक गुंजाइश और विरासत के दायरे का अनुरोध करने वाले दो निर्देश - angularjs

एक ही तत्व पर अलग-अलग दायरे और विरासत के दायरे का अनुरोध करने वाले दो निर्देश - angularjs

मैंने तत्व पर दो निर्देश घोषित किए हैं: एक अलग-अलग दायरे का अनुरोध करता है और अन्य अनुरोधित विरासत का अनुरोध करता है। यहाँ है:

कोड

angular.module("myApp", [])
.directive("myDirective", function() {
return {
restrict: "A",
scope: {
users: "="
},
templateUrl: "users-info.html",
link: function(scope) {
scope.title = "From My Directive";
}
}
})
.directive("otherDirective", function() {
return {
restrict: "A",
scope: true,
link: function(scope) {
scope.title = "From Other Directive";
}
};
})
.controller("AppController", function($scope) {
$scope.users = [
{name: "Anup Vasudeva", username: "anup_vasudeva"},
{name: "Ajay Sharma", username: "ajay_sharma"},
{name: "Vinay Kumar", username: "vinay_kumar"}
];
$scope.title = "Users Information";
});

और एचटीएमएल

<div my-directive other-directive>{{title}}</div>

लेकिन AngularJS यूआरएल का जिक्र करने में त्रुटि फेंक रहा है:

http://docs.angularjs.org/error/$compile/multidir

लेकिन त्रुटियों के विवरण में, मुझे एक बिंदु नहीं दिखता है जहां यह कहता है कि अलग-अलग और वंचित दायरे का अनुरोध करने वाले कई निर्देशों की अनुमति नहीं है।

** संपादित करें ** यह अजीब लगता है, जब मैंने कोणीय का उपयोग किया v1.2.0-rc.2, उपर्युक्त परिदृश्य ठीक काम करता है। otherDirective एक अलग दायरा प्राप्त होता है भले ही वह साझा क्षेत्र के लिए पूछता है। लेकिन यह परिदृश्य नवीनतम संस्करण में काम नहीं करता है।

उत्तर:

जवाब के लिए 2 № 1

आपको एक त्रुटि मिल रही है क्योंकि आपके दोनों निर्देश अलग-अलग दायरे का अनुरोध कर रहे हैं।

इसे हल करने के लिए, उस स्कोप विकल्प को उस निर्देश पर गलत पर सेट करें जिसे आप कोई पृथक गुंजाइश नहीं चाहते हैं:

app.directive("otherDirective", function() {
return {
restrict: "A",
scope: false,
link: function(scope) {
scope.title = "From Other Directive";
}
};
});

यहाँ एक बेवकूफ है

असल में, आप उसी प्रभाव के लिए स्कोप संपत्ति को भी छोड़ सकते हैं।


जवाब के लिए 0 № 2

AngularJS प्रति तत्व केवल एक अलग गुंजाइश की अनुमति देता है। यदि आप करते हैं तो

scope: true

या

scope: {/* something */}

एक ही तत्व पर दो निर्देशों के अंदर, इसका मतलब है कि आप एक ही तत्व पर दो अलग-अलग क्षेत्रों का अनुरोध कर रहे हैं।

के साथ प्रयास करें

scope: false

में otherDirective