angularjs - 指令 - 双向绑定,从指令中的集合中获取键

时间:2014-03-17 13:21:07

标签: javascript angularjs angularjs-directive

我正在尝试构建一个选择器对话框作为指令,输入是json数据的集合。然后我尝试在模板中使用一个表,其中集合键位于thead中。问题是,集合数据显示正常(当前在模板中显示'name'属性),我无法获取密钥,因为$ scope.collection返回undefined。使用Lo-Dash获取密钥。

我有一个指令:

.directive('pb5pickerDialog', function(){
    return {
        restrict: 'EA',
        scope:{
            collection : '=',
            onsubmit : '&'
        },
        templateUrl: "/pb5/c/js/views/pb5pickerDialog.html",
        link : function(scope, element, attrs) {
          scope.onclose = function(){
             $("#pb5pickerDialog").modal('toggle');
          };
          console.log(scope.collection); //this undefined
        },
        controller: function($scope, $element){
           console.log($scope.collection); //this undefined
           console.log(_.keys($scope.collection));
        }
    }
 }); 

1 个答案:

答案 0 :(得分:0)

最有可能的原因是在调用链接函数后设置了$scope.collection。你可能应该设置一个监视器,并在获得初始值时采取措施。类似的东西:

controller: function($scope, $element){
  $scope.$watch('collection', function(collection, oldValue) {
    if (collection) {
      // collection is now set
    }
  });
}