Angularjs多指令[gridsection,gridsection]要求模板:<div gridsection =“”> </div>

时间:2014-08-15 13:59:46

标签: javascript angularjs angularjs-directive

我收到错误:Multiple directives [gridsection, gridsection] asking for templateon : <div gridsection="">此代码。

我不知道我是如何使用嵌套指令或导致这种情况的原因。

html page

<div gridsection ></div>

指令

angular.module('web').directive('gridsection', function() {
    return {
        restrict: 'A',
        replace: false,

        scope: {
      patient: "=patient"
        },
        templateUrl: 'directive/section.html',
        link: function(scope, element, attrs, fn) {


        }
    };
});

指令/ section.html

<div>
  here?
</div>

5 个答案:

答案 0 :(得分:14)

您似乎在角度代码中多次声明网格部分。

答案 1 :(得分:2)

之前我在文件夹中有指令脚本文件的副本时已经看过了。

即。我的文件结构是

* myDirective.js
* myDirective - copy.js

基本上我有两个同名的指令。

<强>卫生署!

  

注意最初将此作为评论发布,但是为了回应来自@jayjayjay的评论而创建的答案

答案 2 :(得分:1)

确保您没有包含两次脚本标记。

我有这个问题,但只在标记中声明了一次指令,结果是因为我将脚本包括两次。

注意:我在其中一条评论中看到了另一个答案并将其作为答案发布,以便于访问/防止它丢失。

答案 3 :(得分:0)

对于后代,我得到了这个例外,因为我试图创建一个名为SELECT id,title,parent_id, rn FROM (SELECT (@rn := if(@parent_id = parent_id, @rn + 1, if(@parent_id := parent_id, 1, 1) ) ) as rn, meals.* FROM meals CROSS JOIN (SELECT @rn := 0, @parent_id := '') params ORDER BY rand() ) meals WHERE rn <= 2 ORDER BY id ASC 的指令,并且该指令与Bootstrap的寻呼机发生冲突。

答案 4 :(得分:0)

由于其他答案中未指定的原因,我收到此错误。 我将xyz指令的声明用作<xyz xyz="xyz"></xyz>

我的定义是:

  angular.module('app')
  .directive('xyz', function () {
    return {
      templateUrl: '..../xyz.html',
      restrict: 'EA',
      scope: {
        xyz: '='
      },
      link: function (scope, element, attrs) {
      }
    };
  });

这里的问题是我允许将指令用作元素和属性。所以<xyz xyz="xyz"></xyz>包含导致问题的声明。

解决方法是将指令限制为仅用作元素restrict: 'E'或将指令的名称更改为xyzView,并将其用作<xyz-view xyz="xyz"></xyz-view> < / p>