【发布时间】:2014-02-28 21:12:35
【问题描述】:
我开始从事一个小的 AngularJS - Philips Hue 项目,但我有点卡住了......
我对 AngularJS 还很陌生……但这里有。
我要做的是列出我拥有的灯,灯的状态和切换它们的切换器。
我决定建立一个工厂(基于这篇文章:http://davidsalter.com/2013/08/16/using-angular-dot-js-factories-to-get-remote-data/)来获取/放置数据:
app.factory('lampsFactory', function($http) {
return {
getLamps: function(callback) {
$http.get('http://172.16.0.2/api/newdeveloper/lights').success(callback);
},
getLampState: function(callback, lampID) {
$http.get('http://172.16.0.2/api/newdeveloper/lights/'+ lampID).success(callback);
}
};
});
getLamps 函数可以正常工作,但我不知道如何根据 id 获取灯数据。 我尝试添加一个额外的参数,但没有奏效。
你能帮我把我推向正确的方向吗?
我也有一个plunker:http://plnkr.co/edit/ySa0PVBahM7sxU4lasgP
谢谢!
【问题讨论】:
-
您能否扩展此声明:
but that did not work?您没有在 API 访问点收到 ID?如果是这种情况,您是否确保 AJAX 请求正确传递了 ID? -
我已经将我的代码更改为
getLampState: function(callback, lampID) { $http.get('http://172.16.0.2/api/newdeveloper/lights/'+ lampID).success(callback); }和我的控制器功能:$scope.getLampState = function(taskId){ lampsFactory.getLampState(function(results) { console.log(results.state.on); return results.state.on; },taskId); };并且它可以工作!唯一不起作用的是 ng-repeat 代码:<td>{{getLampState($index + 1)}</td>它会不断重复 getLampState 函数...
标签: javascript api angularjs philips-hue