Angular.js动态构造指令的templateURL

时间:2014-07-23 16:53:02

标签: javascript jquery angularjs dynamic

REVISION

当我真正理解我的问题时,我已经修改了这个问题以寻找更好的答案。虽然this link对于接受'的MIME类型很有帮助。属性,我的问题更深入。

我正在编写一个允许用户上传文件的应用程序,这些文件必须是特定的MIME类型。

该指令在很多地方使用,并且MIME类型需要在这些地方进行更改。我需要动态构造template的{​​{1}}以适应指令的每个实现。

假设我这样写HTML:

directive

我希望将该MIME类型应用于<cmc-file-upload mimeType="text/html" ng-if="reportFileUploadSettings.showFileUploader" upload-complete-callback="importReportFile(content)" ></cmc-file-upload> 的{​​{1}}:

template

不幸的是,这段代码似乎没有这种方式。

我该如何做到这一点?

参考错误:directive未定义...

2 个答案:

答案 0 :(得分:1)

限制为html使用此:

template: '<input type="file" accept="text/html" id="files" name="files[]" multiple /><output id="list"></output>',

关于如何使用accept的完整答案在这里:

File input 'accept' attribute - is it useful?

答案 1 :(得分:1)

mimeType: "&",更改为mimeType: "@",

因为你做了

mimeType="text/html"

由于“text / html”不是变量,而是原始字符串,因此需要使用@

然后,改变

accept="' + scope.mimeType + '" 

accept="{{mimeType}}" 

因为scope变量未定义(尚未) - 一旦Angular解析模板,它将用变量替换mimeType

编辑:最后一个问题是mimeType="text/html"需要mime-type="text/html",因为在你做指令时

mimeType: "@",

它认为因为你使用了camelCase它应该寻找mime-type