从angularjs的自定义指令访问值

时间:2015-01-12 02:57:03

标签: javascript angularjs angularjs-directive angularjs-scope

我对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

的一部分

现在我的问题是在我选择项目之后我想让它值以供以后使用,我在$ scope.validateSingle函数中使用$ scope.value进行了分配,但我不知道如何访问它并且如果我有页面上超过1个指令而不是我们如何独立访问其值

我希望指令工作就像下拉一旦我选择了项目,如果我想在某个按钮点击它的值,那么我可以使用像dropdown.value其中dropdown可能是指令的id。希望我能清楚我的观点。

1 个答案:

答案 0 :(得分:0)

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

但突然之间有一些事情在我的脑海中触发了为什么我们不能使用 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

希望它对一些新学习者有所帮助