Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS中的未知提供程序$sce_Angularjs - Fatal编程技术网

AngularJS中的未知提供程序$sce

AngularJS中的未知提供程序$sce,angularjs,Angularjs,我正在尝试使用$sce。我的代码设置如下: var app = angular .module('app', ['ui.router', 'admin', 'home', 'questions', 'ngResource', 'ngSanitize', 'LocalStorageModule','ajoslin.promise-tracker']) .config(['$locationProvider', '$sce', '$sceProvider', '$stateProvi

我正在尝试使用$sce。我的代码设置如下:

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));
我检查过了,并加载了angular-sanitize.jsv1.2.0-rc.3

然而,我得到一个信息:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:unpr] Unknown provider: $sce
有人能帮我指出我做错了什么吗。我已经尽可能多地遵循了这个例子,但没有发现哪里出了问题

一些背景:

我认为我需要获得$sce的原因是因为我有100%信任的数据,并且我想在屏幕上显示这些数据。它是包含“&”之类内容的数据。我设置了$sceProvider.enabled(false),但数据仍然显示不正确。接下来我在想也许我需要做:

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

然后在我的HTML中:


这是我所需要的正确方法吗?

$sce从angular 1.2开始默认包含,因此您不需要再进行消毒即可获得$sce。因此,使用1.2,您可以将$sce作为任何其他服务传入。但请确保angular是1.2版(以防您检查了sanitize version vs core)。

问题是您试图在模块配置块内使用$sce,这是一项服务。在此块中只有提供程序可访问

改变这个

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

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

因为看起来额外的“$sce”依赖项无论如何都是错误的。您没有使用它,也没有将其定义为参数。

实际上,我想显示我的管理员创建的、我信任的、我不想清理的数据。所以我相信我需要它,所以我可以:$sce.trustAsHtml(data.text)你提到它是“默认包含的”。那么,你是说我不需要添加“ngSanitize”等功能吗?如果你可以使用1.2,那么访问$sce就不需要它。我使用的是1.2,但是如果我不访问它,我怎么做$sce.trustAsHtml呢?$sce现在(从1.2开始)与任何其他服务一样。因此,如果您将其作为服务传递,它将可用(与$http对实例的工作方式相同)。如果它对您不起作用,请在失败的地方添加代码,我可以看一看。下面示例中的
$sce.trustAsHTML()
调用在Angular 1.3>中现在是不必要的吗?