我如何从指令访问某些AngularJS模型的当前值

时间:2014-12-03 15:24:39

标签: angularjs

我有两个输入:input_1和input_2。我在input_1中键入了一些值,并在输入input_2时尝试访问它(使用input_1值作为自动完成输入_2)。

我已经创建了指令:

.directive('autoComplete', function($timeout) {
        return function(scope, inputElement, inputAttrs) {    
                inputElement.autocomplete({
                    source: (function(){
                        var new_list = scope[inputAttrs.uiItems];
                        new_list.push(scope['input_one_value']);
                        return new_list
                    })(),
                    select: function() {
                        $timeout(function() {
                            inputElement.trigger('input');
                        }, 0);
                    }
                });
        };
    });

但是使用这种方法在指令中我只能访问模型的初始值。我如何访问第一个输入的当前值?

1 个答案:

答案 0 :(得分:0)

我认为你应该传递第一个输入值:

.directive('something', function () {
  return {
    require: ['model'],
    scope: {
      'model': '=', // Two way data binding
    }
  };
})

在模板中传递input1值,如下所示:

<some-tag model="model"></some-tag>

然后,您将通过范围访问指令内的模型,例如scope.model,它将与当前值同步。