Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指令上的未知提供程序错误_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 指令上的未知提供程序错误

Javascript 指令上的未知提供程序错误,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我收到一个关于我所做指令的未知提供程序错误。我刚刚开始学习指令,所以如果我犯了一个非常明显的错误,我会提前道歉 指令应该使用工厂创建它创建的元素 导致错误的div: <div annotation-display tree="{{tree}}"></div> 工厂: angular.module('trees').factory('annotationFactory', ['', function() { var factory = {}; factor

我收到一个关于我所做指令的未知提供程序错误。我刚刚开始学习指令,所以如果我犯了一个非常明显的错误,我会提前道歉

指令应该使用工厂创建它创建的元素

导致错误的div:

<div annotation-display tree="{{tree}}"></div>
工厂:

angular.module('trees').factory('annotationFactory', ['', function() {
    var factory = {};
    factory.createAnnotationHtml = function(tree) {
        console.log("in");
        var out = "<p>";
        d3.tsv.parseRows(tree.data, function(data) {
            var previousNERTag = "";
            for (var row in data) {
                var wordData = data[row];
                var NERtag = wordData[7].substring(wordData[7].length,3);
                if (previousNERTag != NERtag) {
                    previousNERTag = NERtag;
                    if (NERtag === "")
                        out+="</span>";
                    if (NERtag === "PER") 
                        out+='<span class="Person">';
                    if (NERtag === "ORG")
                        out+='<span class="Organization">';
                    if (NERtag === "LOC")
                        out+='<span class="Location">';
                }
            }
            out+='</p>';
        });
        return out;
    };

    return factory;
}]);
我在主应用程序中加载了trees模块,它肯定在那里,因为trees中的控制器工作正常

解决了,

.factory'annotationFactory',[,函数{ 到 模块'trees'。工厂'annotationFactory',函数{

restrict:'E'表示您的指令是一个元素。 限制:“EA”表示您的指令将是元素或属性。 当您将它与div一起使用时,它作为一个属性工作。 如果要将其用作元素,请更改

<div annotation-display tree="{{tree}}"></div>


尝试执行:restrict:'EA'不是div-an元素?取自angular文档:restrict选项通常设置为:'a'-仅匹配属性名'E'-仅匹配元素名'C'-仅匹配可能需要使用模板或模板URL的类名。与angular文档中类似:return{restrict:'E',templateUrl:'my customer.html'};不确定compile是否会这样做。尝试了E和EA,同样的错误,我也尝试了,但是,将指令设置为
<div annotation-display tree="{{tree}}"></div>
<annotation-display tree="{{tree}}"></annotation-display>