0

我有一个很大的表格,正在看ngMessages。我想实现这个:

<script type="text/ng-template" id="error-messages">
<div ng-message="required">This field is required</div>
<div ng-message="minlength">This field is too short</div>
</script>

我会做一个工厂方法吗?所以我可以在许多不同的控制器上使用它?因为项目会有很多形式吗?如果这是正确的方法,我不确定如何将其包含在工厂中。这就是我在想的是否正确。

(function() {
"use strict";
angular.module("minorApp")
    .factory("errorMessage", []);
function errorMessage() {
    return // some template
}
})();
4

1 回答 1

1

您可以将模板添加到 Angular 的模板缓存中:

var myApp = angular.module('myApp', []);
myApp.run(function($templateCache) {
  $templateCache.put('error-messages.html', '<div ng-message="required">This field is required</div><div ng-message="minlength">This field is too short</div>');
});

然后,使用 ng-include 在要包含它的 html 文档中引用它。

<div ng-include src="'error-messages.html'"></div>

如果您使用像 gulp 这样的构建系统,您可以将 html 保存在 .html 文件中,并使用https://www.npmjs.com/package/gulp-angular-templatecache插件自动将它们添加到 Angular 的模板中缓存。

于 2016-03-10T15:56:49.113 回答