所以我一直在四处寻找有关指令的信息,并且有很多人在发布和回答问题。但我仍然没有找到我的答案,也许是因为我试图在我应该使用链接的地方使用控制器。
我的指令相当深入,但基本思想是将数据库中的 db/table/column 数据提取到 3 个选择下拉列表中。最初,只有 1 个下拉菜单可用,直到选择了一个 db,然后它去获取表,当它被选择时,第三个下拉菜单出现,并且在宇宙中一切都很好。我有这个工作,所有代码都在控制器中。
如果数据恰好存在,则尝试预先填充此问题会出现问题。
我的指令在 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
}
}
}]);
我应该以某种方式将所有控制器逻辑移动到链接中吗?或者我怎样才能访问我的指令控制器内的指令范围?