如何在Angular.js中正确地将变量与字符串相等

How to equals correctly a Variable with String in Angular.js

本文关键字:变量 字符串 正确地 Angular js      更新时间:2023-09-26

我将在Angular.js中使用GET请求中的数据,如下所示。

    var app = angular.module('Saidas',[]);
    app.controller('Status', function($scope, $http, $interval) {
        $interval(function(){
            var request = $http.get('/SaidasSite');    
            request.success(function(data) {
                if (data='QTD1LEDON') {
                    $('#QTD1LAMP').bootstrapToggle('on');
                } else (data='QTDLEDOFF'){
                    $('#QTD1LAMP').bootstrapToggle('off');
                } else (data='QTD2LEDON'){
                    $('#QTD2LAMP').bootstrapToggle('on')
                } else { $('#QTD1LAMP').bootstrapToggle('on'); }
            })
            .error(function(data){
                console.log('Error: ' + data);
            });
        }, 5000); 

当我收到"QTD1LEDON"时,我将我的代码中的一个按钮切换到"ON",当我收到QT1LEDOFF时,我将切换到"OFF"。但是当我做这段代码时,比较总是"QTD1LEDON"。我做错了什么?

对不起,我的英语不好

您正在进行赋值而不是比较。因此,在第一个中,如果你给数据值'QTD1LEDON',并且总是为真。

你需要修复:

if (data='QTD1LEDON') {

:

if (data==='QTD1LEDON') {

您应该使用===进行比较,而不是使用=进行赋值。

在javascript中,您使用=====进行比较。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

在你的代码中,你使用=,它只是给你的data变量赋一个值,这意味着条件总是计算为真:if (data='QTD1LEDON') {

您需要使用=====,它将表现为您所期望的:

if (data === 'QTD1LEDON') {

你在做赋值而不是比较,你也有3个else语句,你应该只有一个,所以你应该有像

if (data === 'QTD1LEDON') {
     ...
} else if (data === 'QTDLEDOFF') {
     ...
} else if (data === 'QTD2LEDON') {
     ...
} else { ... }