2013-10-11 15 views
18
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; 
    } 
} 

});

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

उत्तर

55

$scope केवल नियंत्रकों और निर्देशों के लिंक समारोह के लिए उपलब्ध है:

क्रोम में, मैं निम्नलिखित त्रुटि मिलती है। यही कारण है कि फ़िल्टर इसे नहीं मिल सकता है। शायद आप $rootScope मतलब था?

+0

हाँ, $ रूटस्कोप उपलब्ध है। – dylan

+13

** दर्शकों के लिए चेतावनी: ** '$ रूटस्कोप 'अनिवार्य रूप से एक वैश्विक दायरा है। इस तथ्य के प्रभाव के लिए देखें; जैसे '$ रूटस्कोप 'पर एक आंतरिक नियंत्रक से घड़ियों को खुद को अपनाने की देखभाल करनी चाहिए, या स्मृति लीक हो सकती है। इसलिए, सिर्फ इसलिए कि '$ रूटस्कोप' उपलब्ध है, इसका मतलब यह नहीं है कि आगे बढ़ें और इसे लापरवाही से उपयोग करें। –

+0

धन्यवाद, अभी भी कोणीय 1.6.3 के साथ एक उपयोगी जवाब है! – zaphodb

1

मैंने पाया कि "यह" स्थानीय $ स्कोप (फिल्टर फ़ंक्शन के अंदर) संदर्भित करता है। सुनिश्चित नहीं है कि यह इसे एक्सेस करने का सुरक्षित तरीका है या नहीं।

संबंधित मुद्दे

 संबंधित मुद्दे