0

所以我一直在四处寻找有关指令的信息,并且有很多人在发布和回答问题。但我仍然没有找到我的答案,也许是因为我试图在我应该使用链接的地方使用控制器。

我的指令相当深入,但基本思想是将数据库中的 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
        }
    }
}]);

我应该以某种方式将所有控制器逻辑移动到链接中吗?或者我怎样才能访问我的指令控制器内的指令范围?

4

0 回答 0