我正在尝试构建一个选择器对话框作为指令,输入是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));
}
}
});
答案 0 :(得分:0)
最有可能的原因是在调用链接函数后设置了$scope.collection
。你可能应该设置一个监视器,并在获得初始值时采取措施。类似的东西:
controller: function($scope, $element){
$scope.$watch('collection', function(collection, oldValue) {
if (collection) {
// collection is now set
}
});
}