使用angularjs指令从html元素中提取binded angularjs数据

时间:2014-10-26 22:06:49

标签: javascript jquery angularjs angularjs-directive

我的指令包含一个javascript对象。我尝试用jquery找到绑定到这个javascript对象的所有html元素。如何使用jquery获取angularjs对象的绑定数据?

上述代码可能更好地解释了我的计划。

angular.module('app').directive('highlight', [
    '$rootScope', '$compile', function ($rootScope, $compile) {
        return {
            replace: true,
            templateUrl: 'highlight.html',
            link: function (scope, element, attrs) {

                //this data object do we need to highlight
                scope.Tohighlight;

                $($.find('input, select')).each(function () {
                    //todo extract data if input or selection are binding data
                    //<input type="x" data-ng-model="data" /></span>
                    var data = angular.extractDataFromhtmlelement($(this));
                    //if html element contains our data add some css stuff
                    if(data ==  scope.Tohighlight)
                    {

                    }
                });
            };
    }
]);

我不知道为了我的目的是否存在angularjs方法。如何获取jquery对象的绑定angularjs数据模型?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用scope()方法和$parse服务来完成此操作。 Example

link: function(scope, element) {
    var inputElement = element.find('input');
    var inputModelGetter = $parse(inputElement.attr('ng-model'));
    var inputModelSetter = inputModelGetter.assign;
    function getInputModel() {
        return inputModelGetter(inputElement.scope());
    }
    function setInputModel(value) {
        inputModelSetter(inputElement.scope(), value);
    }
    // ...
}