如何在Angular.js中正确地使用String变量等于

时间:2016-10-04 14:57:07

标签: javascript html angularjs

我将使用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”时,我会将我的代码中的按钮设为“开启”,当我收到QT1LEDOFF时,我会将其设为“关闭”。但是,当我执行此代码时,比较始终是“QTD1LEDON”。我究竟做错了什么?

抱歉我的英文不好

4 个答案:

答案 0 :(得分:1)

你正在做一个分配而不是比较。因此,在第一个 if 中,您要为数据提供值' QTD1LEDON',并且始终为真。

您需要修复:

if (data='QTD1LEDON') {

使用:

if (data==='QTD1LEDON') {

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

在您的代码中,您使用=,它只是为您的data变量赋值,这意味着条件总是评估为真实: if (data='QTD1LEDON') {

您需要使用=====,它会按照您的预期行事:

if (data === 'QTD1LEDON') {

答案 3 :(得分:0)

你正在进行作业而不是比较,你还有3个else语句,你应该只有1,所以你应该有类似的东西

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