【发布时间】:2013-12-09 08:01:27
【问题描述】:
我需要使用 AngularJS 从我的数据库中呈现所有帖子。我需要为用户可见的每个帖子提供编辑功能。目前,我正在使用“edit-post”指令来执行此操作。这是为此的链接功能。
link: function ($scope, element, attrs) {
element.bind('click', function () {
var divId = $scope.$parent.post.meta.id + "Data";
var html = $compile("<div class='editTextAreaDiv' id='" + divId + "'>" +
"<textarea class='editTextArea' id='editBox' rows='3' ng-model='editedPostText' name='editedPostText'>" + $scope.$parent.post.meta.data + "</textarea><br />" +
"<span class='pull-right'>" +
"<input class='btn' type='button' value='Save' ng-click='saveEditedPost(\"" + divId + "\")'/>" +
"<input class='btn' type='button' value='Cancel' ng-click='cancelEdit(\"" + divId + "\")'/>" +
"</span>" +
"</div>")($scope);
$("#" + divId).html(html);
});
}
我通过动态添加一个 textarea 和 2 个按钮来操作 DOM。
我的问题是这种动态操作 DOM 元素的方法在 Angular 世界中是否更可取。或者我应该采用其他方法(例如使用 ng-show/ng-hide 指令来显示/隐藏 textarea 和 2 个按钮)。
注意:我不想使用 ng-show/ng-hide,因为我不想为每个帖子引入额外的 textarea 和 2 个按钮。
请指导我。
【问题讨论】:
标签: angularjs angularjs-directive