过滤器$范围错误:未知提供商:$ scopeProvider< - $范围< - transformSensorStatusFilter [英] filter $scope Error: Unknown provider: $scopeProvider <- $scope <- transformSensorStatusFilter

查看:161
本文介绍了过滤器$范围错误:未知提供商:$ scopeProvider< - $范围< - transformSensorStatusFilter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  marsApp.filter(transformSensorStatus功能($范围){
    返回功能(输入选项){    变种sensorReading =(输入(输入/ 1000):0);
    VAR sensorLowLimit =(选项[LOWLIMIT](选项[LOWLIMIT] / 1000):0);
    VAR sensorHighLimit =(选项[HighLimit时(选项[HighLimit时] / 1000):0);
    VAR curStat;
    开关(sensorReading){
        案例255:
        案例254:
        案例253:
            curStat = generateStateInnerHtml(sensorReading);
            打破;
        默认:
            curStat = generateStateInnerHtml(选项[sensorStatus]);    }    返回curStat;
    功能generateStateInnerHtml(州){        VAR stateHtml = NULL;        如果(状态== || 255 ==状态254){
            stateHtml =一个;
            $ scope.sensorStateColor ='';
            返回state_html;
        }
        如果(状态== 253){
            stateHtml =b的;
            $ scope.sensorStateColor =TEXT-警告;
            返回state_html;
        }
        如果(国家> = 0x20的){
            stateHtml =C;
            $ scope.sensorStateColor =TEXT-错误;
            返回stateHtml;
        }
        如果(国家> = 0×02){
            stateHtml =D;
            $ scope.sensorStateColor =TEXT-错误;
            返回stateHtml;
        }
        如果(状态== 0×01){
            stateHtml =E;
            $ scope.sensorStateColor =TEXT-成功;
            返回stateHtml;
        }
        stateHtml =N / A;
        返回stateHtml;
    }
}

});

在Chrome中,我得到以下错误:


  

错误:未知提供商:$ scopeProvider< - $范围< -
  transformSensorStatusFilter



解决方案

$范围仅用于控制器和指令的链接功能可用。这就是为什么过滤器不能找到它。也许你的意思 $ rootScope

marsApp.filter("transformSensorStatus", function($scope) {
    return function(input, options) {

    var sensorReading = ( input ? ( input / 1000) : 0);
    var sensorLowLimit = (options["lowLimit"] ? (options["lowLimit"] / 1000) : 0);
    var sensorHighLimit = (options["highLimit"] ? (options["highLimit"] / 1000) : 0);
    var curStat;
    switch (sensorReading) {
        case 255:
        case 254:
        case 253:
            curStat = generateStateInnerHtml(sensorReading);
            break;
        default:
            curStat = generateStateInnerHtml(options["sensorStatus"]);

    }

    return curStat;


    function generateStateInnerHtml(state) {

        var stateHtml = null;

        if (state == 255 || state == 254) {
            stateHtml = "a";
            $scope.sensorStateColor='';
            return state_html;
        }
        if (state == 253) {
            stateHtml = "b";
            $scope.sensorStateColor="text-warning";
            return state_html;
        }
        if (state >= 0x20) {
            stateHtml = "c";
            $scope.sensorStateColor="text-error";
            return stateHtml;
        }
        if (state >= 0x02) {
            stateHtml = "d";
            $scope.sensorStateColor="text-error";
            return stateHtml;
        }
        if (state == 0x01) {
            stateHtml = "e";
            $scope.sensorStateColor="text-success";
            return stateHtml;
        }
        stateHtml = "N/A";
        return stateHtml;
    }
}

});

in chrome , I get the following error:

Error: Unknown provider: $scopeProvider <- $scope <- transformSensorStatusFilter

解决方案

The $scope is available only for controllers and the link function of directives. This is why the filter cannot find it. Maybe you meant $rootScope?

这篇关于过滤器$范围错误:未知提供商:$ scopeProvider&LT; - $范围&LT; - transformSensorStatusFilter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆