2013-10-16 8 views
7

में अज्ञात प्रदाता $ sce मैं $ sce का उपयोग करने का प्रयास कर रहा हूं।AngularJS

var app = angular 
    .module('app', ['ui.router', 'admin', 'home', 'questions', 'ngResource', 'ngSanitize', 'LocalStorageModule','ajoslin.promise-tracker']) 
    .config(['$locationProvider', '$sce', '$sceProvider', '$stateProvider', 
     function ($locationProvider, $sceProvider, $stateProvider) { 

      $sceProvider.enabled(false); 
      $locationProvider.html5Mode(true); 

नियंत्रक में: मैं इस तरह मेरे कोड सेट अप

angular.module('questions') 
    .controller('QuestionsContentController', 
    ['$rootScope', '$sce', '$scope', '$http', '$resource', '$state', 
    function ($rootScope, $sce, $scope, $http, $resource, $state) { 

     var isNumber = !isNaN(parseFloat($state.params.content)); 

मैं जाँच की और मैं कोणीय sanitize.js v1.2.0-rc.3 भरी हुई है।

हालांकि मैं एक संदेश प्राप्त हो रहा:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: 
Error: [$injector:unpr] Unknown provider: $sce 

किसी को भी मुझे सुझाव मैं गलत क्या कर रहा हूँ से मदद कर सकते हैं। मैंने जितना संभव हो सके उदाहरण का पालन किया है लेकिन यह पता नहीं लगा कि क्या गलत है।

कुछ पृष्ठभूमि:

कारण मुझे लगता है मैं क्योंकि मुझे लगता है कि मैं 100% पर भरोसा डेटा है $ SCE है और कि मैं स्क्रीन पर दिखाना चाहते हैं पाने के लिए की जरूरत है। यह डेटा है जिसमें "<" ">" "&" और इस तरह की चीज है। मैंने $ sceProvider.enabled (झूठा) सेट किया है लेकिन डेटा अभी भी गलत तरीके से दिखाया गया है। अगला मैं सोच रहा था कि शायद मुझे ऐसा करने की ज़रूरत है:

$ scope.content = data.text; $ scope.unsanitizedQuestionText ($ sce.trustAsHtml (data.text))

और फिर मेरी HTML में है:

इस सही तरीके से मैं क्या जरूरत के बारे में जाने के लिए है?

उत्तर

12

$ sce डिफ़ॉल्ट रूप से कोणीय 1.2 से शुरू होता है- इसलिए आपको $ sce प्राप्त करने के लिए अब sanitize की आवश्यकता नहीं है। तो, 1.2 के साथ, आप किसी भी अन्य सेवा के रूप में $ sce पास कर सकते हैं। लेकिन सुनिश्चित करें कि आपका कोणीय संस्करण 1.2 है (यदि आपने sanitize संस्करण बनाम कोर की जांच की है)।

+0

दरअसल मैं डेटा दिखाना चाहता हूं कि मेरे व्यवस्थापक ने विश्वास किया कि मैं भरोसा करता हूं और मैं स्वच्छता नहीं लेना चाहता हूं। तो मेरा मानना ​​है कि मुझे इसकी आवश्यकता है इसलिए मैं कर सकता हूं: $ sce.trustAsHtml (data.text) आप इसका उल्लेख करते हैं कि "डिफ़ॉल्ट रूप से शामिल है"। तो क्या आप कह रहे हैं कि मुझे 'ngSanitize' आदि जोड़ने की आवश्यकता नहीं है –

+0

दाएं- आपको $ sce तक पहुंच के लिए इसकी आवश्यकता नहीं है यदि आप 1.2 – KayakDave

+0

पर ठीक हैं तो मैं 1.2 का उपयोग कर रहा हूं लेकिन मैं $ sce कैसे कर सकता हूं। ट्रस्टएएसएचटीएमएल अगर मैं इसे एक्सेस नहीं करता हूं? –

10

समस्या यह है कि आप मॉड्यूल कॉन्फ़िगरेशन ब्लॉक के अंदर $ sce का उपयोग करने की कोशिश कर रहे हैं, जो एक सेवा है। इस ब्लॉक में केवल प्रदाता उपलब्ध हैं।

बदलें इस

.config(['$locationProvider', '$sce', '$sceProvider', '$stateProvider', 
    function ($locationProvider, $sceProvider, $stateProvider) { 

इस

.config(['$locationProvider', '$sceProvider', '$stateProvider', 
    function ($locationProvider, $sceProvider, $stateProvider) { 

करने के लिए चूंकि यह है कि अतिरिक्त '$ SCE' निर्भरता की तरह लगता है वैसे भी गलत था। आप इसका उपयोग नहीं कर रहे थे और इसे पैरामीटर के रूप में परिभाषित नहीं किया जा रहा था।