Angularjs:调用函数和发送属性的指令

时间:2014-11-12 14:20:16

标签: angularjs angularjs-directive

我有这个HTML行:

<input type="text" id="textComment" ng-model="userComment" data-user="<?php echo $user->uid; ?>" data-nid="<?php echo $message->field_message_entity_reference['und'][0]['target_id']; ?>" class="form-control"  placeholder="Write something, upload a photo and push QUEBUTTON" comment-submit-on-return data-function="sendComment(attrs)">

这条指令:

angular.module('queApp').directive('commentSubmitOnReturn',[function() {
        return {
            link : function(scope, element, attrs) {
                console.log("commentSubmitOnReturn ");
                console.log(attrs);
                element.bind("keypress", function(event) {
                    if (event.which == 13) {
                        scope.$apply(attrs.function);
                        return;
                    }
                });
            }
        }
    }]);
})();

该指令有效(调用attrs.function),但我需要的是将“attrs”值传递给通过$ scope.apply调用的函数。

我尝试过范围。$ apply(attrs.function)(attrs)但没有成功。

我的错误在哪里?

感谢。

1 个答案:

答案 0 :(得分:0)

解决方案是在html中替换:

data-function="sendComment(attrs)"

data-function="scope.sendComment(attrs)">

在指令中:

scope.$apply(attrs.function);

scope.$apply(function() { eval(attrs.function)(attrs); });

希望这可以帮助其他人。