2016-03-10 40 views
0

我有一个相当大的表单,正在寻找ngMessages。我想实现这一点:如何包含Angular ngMessage模板

<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 
} 
})(); 

回答

1

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

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>'); 
}); 

然后,在你想使用包括它的HTML文件中引用它NG-包括。

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

如果您使用的是构建系统一样一饮而尽,你可以保持你的HTML .html文件,并使用https://www.npmjs.com/package/gulp-angular-templatecache插件自动将它们添加到角的模板缓存的过程。

+0

关于angular-templatecache插件,在Maven中也是一样的,所以可能对于咕噜声和其他的构建工具。 – Walfrat