2013-10-16 18 views
7

$ sceを使用しようとしています。私がチェックし、私は、角-sanitize.js V1.2.0-rc.3がロードされて

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

:コントローラで

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

:私はこのように私のコードを設定します。

しかし、私はメッセージを取得しています:

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

誰もが私が間違っているの何を示唆していることで私を助けることができます。私はこの例をできるだけ追ってきましたが、何が間違っているかを知ることはできません。

いくつかの背景:

私は100%信頼し、私は画面上に表示したいというデータを持っているので、私は$のSCEを取得する必要があると思う理由があります。それは "<" ">" "&"とこのようなものを含むデータです。私は$ sceProvider.enabled(false)を設定しましたが、データはまだ間違って表示されます。次に、私はおそらく私がする必要があると考えていた:

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

、その後、私のHTMLを持っている:

は、これは私が必要なものについて移動する正しい方法ですか?

答えて

12

デフォルトでは$ sceが角度1.2から始まります。$ sceを取得するためには、もはやサニタイズする必要はありません。したがって、1.2では、他のサービスと同様に$ sceを渡すことができます。しかし、角度がバージョン1.2であることを確認してください。

+0

実際には、自分の管理者が作成したデータが信頼できるものであること、偽造したくないデータを表示したいと考えています。だから、私はそれが必要なと信じています:$ sce.trustAsHtml(data.text)あなたはそれが "デフォルトで"含まれていると言います。あなたは 'ngSanitize'などを追加する必要がないと言っています –

+0

1.2上でOKであれば$ sceにアクセスする必要はありません – KayakDave

+0

私は1.2を使用していますが、どのように$ sceを行うことができますか?私がそれにアクセスしないと、trustAsHtml? –

10

問題は、サービスである$ sceをモジュール構成ブロック内で使用しようとしていることです。このブロックでアクセスできるのはプロバイダーだけです。この

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

変更この

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

、余分な '$のSCE' 依存性はとにかく間違っだったように思えるので。あなたはそれを使用しておらず、パラメータとして定義されていませんでした。

関連する問題