Angularjs指令回调或监听器

时间:2015-11-11 15:26:43

标签: angularjs angularjs-directive

我之前创建了一个指令,允许我从内部函数中获取用户ID /名称。我需要这个,因为我需要为多个用户角色执行相同的过程。这一切都按照我的意愿工作,但现在我遇到了一种情况,在一种情况下(我知道),一旦指令的值被设置到模型中,我需要设置一些额外的范围标志来处理一些进程。我不确定如何解决这个问题...它是一种回调,只是在某些事情被传递到指令中时才被调用,或者我是否使用一些监听器来查看值是否发生变化然后设置我需要的标志?就像我说的那样,我并不总是需要这样做,所以无论我做什么都必须足够灵活,不要总是被要求/发生。我似乎认为它需要成为指令中的一部分,但我不知道如何去做。

这是我当前的指令,它完全符合我设置两个模型值(用户的名称和ID)的要求。

app.directive('nameUser', function() {
return {
  restrict: 'E',
  scope: {               
     idModel : '=',
     nameModel : '='
  },
  templateUrl : 'app/views/nameUser.html',          
  link : function($scope,nameModel,idModel){       

       $scope.searchName = function(searchQuery, bar){
         var bar = "#loadingBar" + bar;
         if(searchQuery && searchQuery.length >= 3){
            $(bar).slideDown();
              $http.get("/read/userinfo/" + searchQuery).success(function(data){
                  $scope.nameSearchResults = data;
                  $(bar).slideUp();
               });
         }
   }

    $scope.selectName = function(pl){
       $scope.nameModel = pl.name;    
       $scope.idModel = pl.user_id;  
       $scope.nameSearchResults = {};
    }
  }
}; 

我的HTML调用指令是(这是在表的ng-repeat中调用的:

<name-user id-model="request.requesterID" name-model="request.requester"></name-user>

有人可以帮我知道该怎么做,例如,如果设置了id / name,我可以将控制器中的值设置为true吗?到目前为止,我只需要在一个特定的地方使用它,所以不是每次都调用该指令。

1 个答案:

答案 0 :(得分:0)

在显示被调用的值时,我最终在视图中使用了一个函数,它完成了我需要做的事情。谢谢你的帮助。