当前位置: 首页 > 面试题库 >

指令模板必须仅具有一个根元素

顾赞
2023-03-14
问题内容

我是angularJs的新手。我正在尝试创建包含输入元素和按钮的新指令。我想使用此指令在单击按钮时清除输入文本。

当我在html中使用指令时,出现以下错误:

Error: [$compile:tplrt] Template for directive 'cwClearableInput' must have exactly one root element.

的HTML:

<div class="input-group">
         <cw-clearable-input ng-model="attributeName"></cw-clearable-input>
 </div>

clearable_input.js

angular.module('cw-ui').directive('cwClearableInput', function() {
  return {
    restrict: 'EAC',
    require: 'ngModel',
    transclude: true,
    replace: true,
    template: '<input type="text" class="form-control"/><span class="input-group-btn"><button type="button" class="btn" ng-click="" title="Edit"><span class="glyphicon-pencil"></span></button></span>',
    controller: function( $scope ) {

    }
};
});

我无法弄清楚如何实现这一目标。


问题答案:

好吧,这个错误是不言自明的。您的模板需要具有一个根,而您的必须具有两个根。解决此问题的最简单方法是将整个内容包装在a div或a中span

template: '<div><input type="text" class="form-control"/><span class="input-group-btn"><button type="button" class="btn" ng-click="" title="Edit"><span class="glyphicon-pencil"></span></button></span></div>',

之前:

<input type="text" class="form-control"/>
<span class="input-group-btn">
  <button type="button" class="btn" ng-click="" title="Edit">
    <span class="glyphicon-pencil"></span>
  </button>
</span>

后:

<div>    <!--  <- one root   -->
  <input type="text" class="form-control"/>
  <span class="input-group-btn">
    <button type="button" class="btn" ng-click="" title="Edit">
      <span class="glyphicon-pencil"></span>
    </button>
  </span>
</div>


 类似资料:
  • 问题内容: 我正在尝试实现自定义指令,以使html表中的列可排序。 HTML: JS: 指令模板: 因此,当我将其用作指令模板的根标记时,会检索到错误: 但是当我更改为或标记时,一切正常。 我究竟做错了什么? 问题答案: 我希望在上下文之外进行评估时,它会在某个中间点消失(将该模板放入您网页的某个随机部分以查看消失)。 在您的位置上,我将在模板中使用a ,更改为“ A”类型指令,并像以前一样使用a

  • 问题内容: 我是React的新手,我想知道这里的标准是什么。 想象一下,我有一个像这样的反应路由器: 现在我想删除如果设置为的两条路线,因此一种理智的做法如下所示: 但是有两条路线,React返回错误: 表达式必须具有一个父元素。 我不想在这里使用多个ifs。React首选的处理方式是什么? 问题答案: 将它们放在一个数组中(也分配键): 使用最新的React版本,您也可以这样尝试 :

  • 问题内容: 我有一个指令,可以在一个页面上多次使用。在此指令的模板中,我需要对输入元素使用ID,以便可以将Label“绑定”到它,如下所示: 现在的问题是,一旦多次包含我的指令,ID“ item1”就不再是唯一的,并且标签将无法正常工作(单击时应选中/取消选中该复选框)。 该问题如何解决?有没有一种方法可以为模板分配“名称空间”或“前缀”(例如asp.net使用ctl00 …- Prefix)?还

  • 在测试我的Controller类时,我遇到了这个异常 我的控制器测试类如下所示 我的引导类 我的依赖项如下所示 IllegalArgumentException:必须至少存在一个JPA元模型没有解决我的问题

  • wx:if 预期: any 用法: 根据表达式的值的 truthiness 来有条件地渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。 注意:如果元素是 <block/>, 注意它并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。 WARNING 当和 wx:if 一起使用时,wx:for 的优先级比 wx:if 更高。详见列表渲染教程 参考: 条件渲染 -

  • 问题内容: 在开始使用spring rest时,我得到了如下错误 用下面的代码 以下是我的pom.xml UTF-8 UTF-8 1.8 请帮我。我不知道如何解决这个错误 问题答案: 你已添加 在你的pom.xml中。 Spring Boot会尝试自动为JPA创建实体工厂,但是你尚未定义有关JPA模型的任何内容。 尝试将其删除,以测试到目前为止你做了什么。