使用$ http加载ng-class和value

时间:2014-09-21 17:21:59

标签: angularjs ng-class angularjs-http

我有一个元素的局部视图,哪个类应该依赖于$ scope中变量的值:

<a class="btn" ng-class="{'btn-success': led == 'on'}" ng-click="toggleLed()">On</a>      

在控制器中,我使用$ http:

加载led的初始值
 $scope.led = 'unknown';       

 $http.get('/green')
        .success(function (data) {                                 
                $scope.led = data;                                  
        });

我的问题是,在打开页面后led变量被更新但CSS类没有。添加$ scope。$ apply()没有帮助(错误:错误:inprog Action已在进行中)。 有没有解决这类问题的方法?

1 个答案:

答案 0 :(得分:2)

你检查过“数据”的内容吗?

通常.success收到响应,数据在response.data中。

此外,尝试将booleans用于led值,初始化时使用false(off),然后使用true(on)。 这样,你可以使用:

<a class="btn" ng-class="{'btn-success': led, 'btn-error': !led}" ng-click="toggleLed()">On</a>