javascript - 包装其元素的 Angular 属性指令

标签 javascript angularjs directive

就像标题所说,我正在尝试创建一个包装其父级的属性指令,并允许我在编辑和显示实际模型值之间切换。

简而言之:

<input ng-model="model" allow-edit="editing" />

最终看起来像:

<div>
    <div ng-hide="editing">{{model}}</div>
    <input ng-show="editing" ng-model="model"></input>
</div>

如果一切顺利。

但是,我不断得到更多类似的东西:

<input ng-model="model">
    <!-- html from allow-edit directive's template --!>
</input>

我在这里使用输入作为示例,但我也希望能够包装任意内容(选择等)...

有人能够制作一个将其他内容包装在同一元素上的指令吗?有没有我没有考虑的更好的方法来做到这一点?

感谢您的帮助!

最佳答案

我希望这能回答您的问题:
在指令选项中:

  1. 设置替换:true
  2. 设置嵌入:“元素”
  3. 在您想要将原始元素放入包装模板中的任何位置使用 ng-transclude

plunker link

示例:

js:

var app = angular.module("test", []);

app.directive("myCustomInput", function($rootScope){
  return{
    restrict: "A",
    replace: true,
    transclude: "element",
    template: "<div class='input-wrap'>"+
    "<div ng-transclude></div>"+
    "<i class='glyphicon glyphicon-chevron-down'></i>"+
    "</div>"
    
  }
});

HTML:

<input my-custom-input type="text" />

关于javascript - 包装其元素的 Angular 属性指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295882/

相关文章:

javascript - innerHTML 产生未定义,但正确的数据可见

javascript - 重新加载 angularJS 后在 Controller 和持久之间发送数据

javascript - 在不影响其他类似对象的情况下删除 ng-repeat 中的对象

python - 我如何从 django 模型中提取元数据

javascript - 使用指令将小部件集成到 Angular 应用程序中

javascript - 带有 ng-include 模板的 Angular 指令

javascript - html 在新目标和焦点上打开一个 url

javascript - 如何使用 JavaScript 解析来自不同 URL 的 html?

javascript - 使用 Angular 表达式处理 JSON 字符串返回的 bool 数据

Angular 4 Base64 上传组件