2016-03-10 73 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