我有这个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)但没有成功。
我的错误在哪里?
感谢。
答案 0 :(得分:0)
解决方案是在html中替换:
data-function="sendComment(attrs)"
与
data-function="scope.sendComment(attrs)">
在指令中:
scope.$apply(attrs.function);
与
scope.$apply(function() { eval(attrs.function)(attrs); });
希望这可以帮助其他人。