【发布时间】:2016-03-29 14:10:46
【问题描述】:
我在某些页面(角度模板)上有很多输入、文本区域和选择。
我想重新定义“输入”指令,这样它将从 localStorage 中获取类似ViewMode = true 的值并将所有输入转换为标签。如果我更改了ViewMode,那么页面刷新输入应该会正常运行。
但我不想在任何角度模板上编辑任何输入标签。
意味着我想覆盖输入、文本区域并选择作为我自己的角度指令。
我无法开始。我应该从哪里开始? (我有使用新名称的自定义指令的经验,但没有任何令人兴奋的 HTML 标签名称)
注意:我不想使用只读(具有正确样式),因为它需要编辑所有输入标签。不仅我有具有隔离范围的自定义指令,因此我需要将 ViewMode 值传递给所有自定义指令。如果用户按下 CTRL+A 内容只读字段未被选中,则更是如此。
我正在寻找如下解决方案
ViewButtonClickEvent () {
set localStorage.viewMode = true;
callExistingEditMethod();
}
EditButtonClickEvent () {
set localStorage.viewMode = false;
callExistingEditMethod();
}
editPagesModule.directive('input', {
if(localStorage.viewMode != true)
//Keep all existing functionality with ng-model
}
else {
//replace input with span or label.
}
})
【问题讨论】:
-
也许是你要找的装饰器。
-
Angular 指令不仅可以是一个元素,还可以是一个属性或类,对吧?只需将指令作为可以添加到 、
-
ng-readonly 在那里,但我不喜欢使用它,因为我必须更新所有输入标签。我想要一些集中的方法。这样我就不需要碰任何东西了。
-
看起来您需要“就地编辑”功能。网上有很多例子example(不是我的)。
-
不错的一个。但它不应该是孤立的范围。它应该与现有的 ng-model 和其他 ng 指令一起使用
标签: angularjs angularjs-directive