Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
angularjs属性名称未编译_Angularjs_Compilation_Attributes_Directive - Fatal编程技术网

angularjs属性名称未编译

angularjs属性名称未编译,angularjs,compilation,attributes,directive,Angularjs,Compilation,Attributes,Directive,我正在尝试生成如下属性名称: name="id{{myScopeId}}" 这在大多数情况下都能很好地工作,但是当我在一个已经有自定义指令的元素上这样做时,它就不再工作了,结果只有“id” 此自定义指令应用于文件输入元素并处理文件名 这将起作用,其结果是 name=“file5”: 这行不通,结果是 name=“file”: 下面是JSFIDLE示例: 您需要firebug或类似工具才能查看生成的属性名称 感谢您的帮助问题在于您的指令定义。当我查看指令定义时,scope属性作为对象哈希的定义

我正在尝试生成如下属性名称:

name="id{{myScopeId}}"
这在大多数情况下都能很好地工作,但是当我在一个已经有自定义指令的元素上这样做时,它就不再工作了,结果只有“id”

此自定义指令应用于文件输入元素并处理文件名

这将起作用,其结果是

name=“file5”:

这行不通,结果是

name=“file”:

下面是JSFIDLE示例:

您需要
firebug
或类似工具才能查看生成的属性名称


感谢您的帮助

问题在于您的指令定义。当我查看指令定义时,scope属性作为对象哈希的定义创建了一个新的隔离作用域。根据指令

{}(对象哈希)-然后创建一个新的“隔离”作用域。这个 “隔离”作用域与正常作用域的不同之处在于它没有 原型继承自父范围。这在以下情况下非常有用: 创建可重用组件,这些组件不应意外读取或删除 修改父范围中的数据

因为在您的例子中使用的是对象哈希,所以会为html元素创建一个新的作用域,该作用域不会从父作用域继承

我创建了一个新的fiddle,它通过在父作用域属性和指令隔离作用域属性之间创建一个双向绑定来修复这个问题。看到小提琴在这里演奏了吗

小提琴的一些相关部分是

 <input name="file{{myId}}" type="file" file-handler="fileName" file="myId"/><br />

非常感谢你的回答。现在看起来很明显,但我无法发现
 scope : {
            fileHandler : '=',
            myId:'=file'
        },