首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在搜索后获得一个对象

在搜索后获得一个对象
EN

Stack Overflow用户
提问于 2016-06-20 12:40:29
回答 1查看 138关注 0票数 2

你好,我的目标是测试员工是否存在$scope.CodeBarre值,进入我的防火墙数据库,然后,如果$CodeBarre存在,程序将打开一扇门。$CodeBarre var来自USB条形码扫描,它将扫描雇主的CardId.

这是我的实际代码:

代码语言:javascript
复制
  /* TEST DU CODE BARRE EN LIGNE */
 $scope.CodeBarre="GA13081982";
function testerLeCodebarre() {

    var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre);
    $scope.employe = $firebaseArray(ref);

    console.log($scope.employe);
} 

我在数组中获得了一个类似于以下内容的$scope.employe对象:

我得到了正确的雇员,但不可能让它进入angularJs视图之后,我就是不能通过输入$scope.employe.nom得到雇主的名字

注意:如果找不到该雇员,则firebase返回的数组不是空的,但我只是找不到employee对象.

我也尝试过使用$firebaseObject,但是我无法获得一个普通的AngularJs对象。

请你帮忙,谢谢

我的模板是这样的:

代码语言:javascript
复制
<div class="row">
        Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>
  1. 尝试使用$firebaseObject:

当我输入它,尝试获取对象而不是数组时,它很好地找到了雇员,但问题是我无法访问模板中的对象,因为我事先不知道$ID (这个$ID是由Firebase生成的):

代码语言:javascript
复制
/* TEST DU CODE BARRE EN LIGNE */

函数testerLeCodebarre() {

代码语言:javascript
复制
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre);
$scope.employe = $firebaseObject(ref);
console.log($scope.employe);

}

这就是我进入Firebug的原因:

获取一个对象时的Firebug

我的愿望只是在$scope.employe中填充一个对象,这个对象拥有我从firebase获得的$id -KIcVJh9sdVSWMamGaA3,但是我真的不知道该如何做。

编辑:因此,它可以很好地工作如下:

代码语言:javascript
复制
    var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre).once("value", function(snapshot) {
   var data = snapshot.val(); 
   if (data){
       console.log(data);

     //employee exists
     $scope.employe = data;
     console.log($scope.employe);
   }

但是$scope.employe =数据在我的模板中不起作用:

代码语言:javascript
复制
<div class="row">
        Bienvenue, {{employe.prenom}} {{employe.nom}}
</div>

我仍然无法访问对象,而且考虑到我事先不知道$id:

对象由火基返回。

我尝试输入控制器data.nomdata.age,但没有定义。我也尝试过$scope.employe = data.nom;但是没有定义

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 13:02:17

如我所见,您将始终检索一个员工,因此在您的情况下不需要使用$firebaseArray。只需配合:

代码语言:javascript
复制
var ref = new Firebase('https://blinding-heat-8502.firebaseio.com/employes').orderByChild("identifiant").equalTo($scope.CodeBarre).on("child_added", function(snapshot) {
   var data = snapshot.val(); 
   if (data){
     //employee exists
     $scope.employe = data;
   }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37922844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档