从 angularjs 的自定义指令访问值

access value from custom directive of angularjs

我对 angularjs 很陌生,我正在努力学习它。如果我在学习曲线上问一些愚蠢的问题,请原谅我。

我创建了可重用的自定义指令,效果很好。我的完整代码在 http://plnkr.co/edit/GxM78QRwSjTrsX1SCxF7?p=preview

$scope.validateSingle = function(item) {
                    $scope.text = item[$scope.textField] + ($scope.textField2 !== '' ? " (" + item[$scope.textField2] + ")" : "");
                    $scope.value = item[$scope.valueField];
                    console.log($scope.value);
                    $scope.placeholder = 'placeholderBlack';
                    $scope.hideItems();
                    if (typeof $scope.callback == 'function') {
                        $scope.callback($scope.value);
                    }
                }

我也在上面的代码中分配了那个值,这是我的 plunker 的一部分

现在我的问题是在我 select 项目之后我想获得它的价值以供以后使用,我确实在 $scope.validateSingle 函数中用 $scope.value 分配了它,但我没有不知道如何访问它,如果我在页面上有超过 1 个指令,那么我们如何独立访问它的值

我希望指令在我 selected 项目后像下拉菜单一样工作,如果我想在某些按钮中单击它的值,那么我可以像 dropdown.value 一样使用,其中下拉菜单可以是指令的 id .希望我能澄清我的观点。

正如我告诉过你的,我正在学习曲线,我试图在不同的论坛上提出同样的问题,但我无法得到答案

但是我突然想到为什么我们不能使用 ngModal 作为我想要的 ngBind,所以首先在我的指令中添加了

require: 'ngModel',

然后在我的 $scope.validateSingle 函数中我添加了 ngModel.$setViewValue($scope.value); 其中 $scope.value 我正在分配选定的值所以我的 validateSingle 函数变成这样

            $scope.validateSingle = function(item) {
                $scope.text = item[$scope.textField] + ($scope.textField2 !== '' ? " (" + item[$scope.textField2] + ")" : "");
                $scope.value = item[$scope.valueField];
                $scope.placeholder = 'placeholderBlack';
                $scope.hideItems();
                if (typeof $scope.callback == 'function') {
                    $scope.callback($scope.value);
                }

                ngModel.$setViewValue($scope.value);
            }

所以宾果游戏每件事都像我想要的那样魅力四射。我编辑了我的 plunker 你也可以查看 http://plnkr.co/edit/GxM78QRwSjTrsX1SCxF7?p=preview

希望对新手有所帮助