所以我一直在寻找有关指令的信息,并且有很多人发帖和回答问题。但我仍然没有找到答案,也许是因为我试图使用控制器,我应该使用链接。
我的指令相当深入,但基本思路是将数据库中的db / table / column数据拉出到3个选择下拉列表中。最初,只有1个下拉可用,直到选择了数据库,然后它去获取表,当它被选中时,第三个下拉出现,并且宇宙中的一切都很好。我有这个工作,所有代码都在控制器中。
如果数据恰好存在,尝试预先填充此问题就会出现问题。
我的指令在ng-repeat内部被调用:
<choosedb
db='{{xmlBlock.dict.mapTo.column.db}}'
</choosedb>
我的指令如下:
app.directive('choosedb',["$http", function($http) {
return {
scope:{
db: "@db"
},
transclude: true,
restrict: 'EA',
templateUrl: 'templates/jsTemplates/choosedb.html',
link: function($scope, element, attrs, parentCtrl) {
$scope.selectedDB = db; // <<<<< this does not work
controller: function($scope, $http){
$scope.selectedDB = db; // <<<<< this does not work
}
}
}]);
我应该以某种方式将所有控制器逻辑移动到链接中吗?或者我如何访问指令控制器内的指令范围??