【发布时间】:2015-09-11 12:12:10
【问题描述】:
我想知道哪种做法更好?
- 将模板放入指令中?
- 将模板放入工厂,将该工厂注入指令中并使用工厂的模板?
为了更好地理解:
示例 1:
angular.module('myApp').directive('myDirective1', function () {
var myTemplate = '<div>
//a looooot of HTML
</div>';
return {
template: myTemplate
};
});
示例 2:
angular.module('myApp').directive('myDirective2', ['templateFactory', function (templateFactory) {
return {
template: templateFactory.myTemplate
};
}]);
angular.module('myApp').factory('templateFactory', function () {
var Template = '<div>
//a looooot of HTML
</div>';
return {
myTemplate = Template
}
});
假设我有例如 20 个指令,每个指令都有 它自己的模板 - 将所有模板放入工厂或离开 它们在指令中?
哪种方式更适合使用,更适合阅读, 对一切都更好?
为了阅读和更好地理解问题,我简化了这些指令,但在我的项目中,这些指令包含很多内容(控制器、作用域等)
【问题讨论】:
-
factory 在方法列表中将处于低位。其他方式有
$templateCache、脚本标签模板、服务器文件等 -
我建议保留指令外部的模板并使用
templateUrl: /path/to/tmpl稍后在template字符串中编辑模板可能会变得很麻烦。正如上面@charlietfl 所说,我肯定会使用$templateCache。
标签: angularjs templates factory directive