์ ๋ชฉ์์ ์ ์ ์๋ฏ์ด ngMessagesInclude๋ ์์ ngMessages๊ฐ DOM์์ ์ ๊ฑฐ ๋ ํ ์ฒ๋ฆฌ๋ฉ๋๋ค. angular๊ฐ ๋ด๋ถ ๋ฉ์์ง๋ฅผ ์ฐ๊ฒฐํ๊ธฐ์ํ ๋ถ๋ชจ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ์คํจํฉ๋๋ค. ngMessage
๊ฐ ngMessages
์์ ๋ด๋ถ์ ์ธ๋ผ์ธ๋๊ฑฐ๋ ์์ ์์๊ฐ DOM์ ์ฌ์ ํ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๊ฐ ์์ต๋๋ค.
<div ng-if="myForm.$submitted" ng-messages="myForm.myName.$error">
<div ng-messages-include="messages.html"></div>
</div>
์ ์ถ์ ๋ค์์ ์ํด ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค.
this.change = function(myForm) {
var self = this;
myForm.$setSubmitted(); // event A
$scope.$applyAsync(function () {
self.currentStep = 'step2.html'; // event B
});
};
์ด๋ฒคํธ (A)์์ messages.html
๊ฐ ๋ค์ด๋ก๋๋ฉ๋๋ค. $templateRequest
์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ๋ฐํ ๋ ๋๊น์ง ์ฐ๊ฒฐ์ด ์ค๋จ๋ฉ๋๋ค. ํํธ, ์ด๋ฒคํธ (B)๋ ngMessages
๋ฐ ๊ทธ ํ์ ํญ๋ชฉ์ DOM์์ ์ ๊ฑฐํฉ๋๋ค. ๋์ค์ ngMessagesInclude ์ฝํ
์ธ ๊ฐ ๋์ฐฉํ๊ณ angular๊ฐ์ด๋ฅผ ์ปดํ์ผํฉ๋๋ค. ๊ทธ๋ฌ๋์ด ์์ ์์ ๋ ์ด์ ngMessages
์ปจํธ๋กค๋ฌ๋ฅผ ๊ฒ์ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
Plnkr : http://plnkr.co/edit/0GOOLERvfj7n9vDVEyZp?p=preview
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ngIf
์กฐ๊ฑด๊ณผ ํจ๊ป ๋ฐ์ํฉ๋๋ค.
๋ฒ์ 1.4.4์ ๋ํด ํ ์คํธ๋์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ํผํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค.
ng-if="myForm.$submitted && myForm.myName.$invalid"
๊ตฌ์ฑ ์์ ์ธก๋ฉด์์์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด require: '^^ngMessages'
์ ํ ์ฌํญ์ผ๋ก ๋ง๋ค๊ณ ์ฐ๊ฒฐ ์ค์ ํด๋น ์กฐ๊ฑด์ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ์ด ์์ ์ ngMessagesInclude์์ HTML์ ์ปดํ์ผ / ๋งํฌํ๊ธฐ ์ ์ ๋ฒ์๊ฐ ํ๊ดด๋์๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค.
$templateRequest(src).then(function(html) {
if (scope.$$destroyed) return;
// ...
}
์ด๊ฒ์ด ngInclude๊ฐ ๋์ผํ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ngInclude
ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฌ๋ ๊ฒ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
@awerlang ๋๋ @jpekkala , PR ์ ์ถ์ ๊ด์ฌ์ด ์์ผ์ญ๋๊น?
ํ์คํ. ๋ฉฐ์น ๋ด๋ก PR์ ์ ์ถํ๊ฒ ์ต๋๋ค.