繁体   English   中英

如何在Angular.js中正确等于带有字符串的变量

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

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

    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”,则始终为true。

您需要修复:

if (data='QTD1LEDON') {

与:

if (data==='QTD1LEDON') {

您应该使用===进行比较,而不是使用=进行分配。

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

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

在您的代码中,您使用= ,它只是为data变量分配一个值,这意味着条件始终评估为真: if (data='QTD1LEDON') {

您需要使用===== ,它的行为将与您期望的一样:

if (data === 'QTD1LEDON') {

您正在分配而不是进行比较,并且还有3条else语句,其中您只能有1条,所以您应该有类似

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM