2013-10-16 13 views
7

Sto provando a utilizzare $ sce. Ho impostato il mio codice come questo:

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); 

Nel controllore:

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)); 

ho controllato e ho la angolari-sanitize.js v1.2.0-rc.3 caricato.

Comunque sto ottenendo un messaggio:

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

qualcuno mi può aiutare suggerendo quello che sto facendo male. Ho seguito l'esempio il più possibile ma non riesco a scoprire cosa c'è che non va.

Alcuni retroscena:

Il motivo penso che ho bisogno di ottenere il $ sce è perché ho i dati di cui mi fido al 100% e che voglio mostrare sullo schermo. Sono dati che contengono "<" ">" "&" e cose come questa. Ho impostato $ sceProvider.enabled (false) ma i dati continuano a essere visualizzati in modo errato. Poi ho pensato che forse dovevo fare:

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

e poi nel mio HTML hanno:

E 'questo il modo giusto per andare a quello che mi serve?

risposta

12

$ sce è incluso per impostazione predefinita a partire da angolare 1.2, quindi non è necessario disinfettare più per ottenere $ sce. Quindi, con 1.2, puoi passare $ sce come qualsiasi altro servizio. Ma assicurati che la tua angolare sia la versione 1.2 (nel caso in cui hai controllato la versione sanitize vs core).

+0

In realtà voglio mostrare i dati che i miei amministratori hanno creato di cui mi fido e che non voglio disinfettare. Quindi credo di averne bisogno, così posso fare: $ sce.trustAsHtml (data.text) Hai detto che è "incluso di default". Quindi stai dicendo che non ho bisogno di aggiungere 'ngSanitize' ecc. –

+0

Giusto- non ne hai bisogno per l'accesso a $ sce se stai lavorando su 1.2 – KayakDave

+0

Sto usando 1.2 ma come posso fare $ sce. trustAsHtml se non lo accedo? –

10

Il problema è che si sta tentando di utilizzare $ sce, che è un servizio, all'interno del blocco di configurazione del modulo. Solo i provider sono accessibili in questo blocco.

Modificare questa

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

Per questo

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

in quanto sembra che che la dipendenza extra '$ sce' era errata in ogni caso. Non lo stavi utilizzando e non veniva definito come parametro.

Problemi correlati