0
我正在使用ngMessages進行表單驗證。我面臨的問題是,我的html是由javascript動態創建的,angular.message.js在此之前加載。所以我想在所有動態HTML元素被創建時觸發ngMessage。從哪裏啓動角度的ngMessages指令,我可以手動啓動它嗎?
我正在使用ngMessages進行表單驗證。我面臨的問題是,我的html是由javascript動態創建的,angular.message.js在此之前加載。所以我想在所有動態HTML元素被創建時觸發ngMessage。從哪裏啓動角度的ngMessages指令,我可以手動啓動它嗎?
A ngMessages
指令通過在數據綁定中使用的form
,$rootScope
或$scope
對象中的更改進行初始化。 ngMessage
指令用於綁定到父節點,並且每個ngMessages
指令都用於綁定到值爲true
或false
的特定子項。
使用以下過程:
templateCache
templateCache
ngMessages
指令指定的密鑰的值設定爲true
個
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular-messages.js"></script>
<script>
angular.module('foo', ['ngMessages']);
</script>
<script>
function bop(model, view)
{
var i = 0, len = 100000, buz = "";
for (i; i < len; i++)
{
buz = buz.concat(i);
}
bop.cache.put('listContent', buz);
view.loaded = true;
return model;
}
function baz($templateCache)
{
bop.cache = $templateCache;
return bop;
}
baz.$inject = ['$templateCache','$rootScope'];
angular.module('foo').filter('baz', baz);
</script>
<div ng-app="foo">
<form name="myForm">
<label>Check Me<input type="checkbox" ng-model="$root['required']"></label>
<div ng-include="'listContent' | baz:myForm"></div>
<div ng-messages="$root" style="color:green" role="alert">
<div ng-message="required"></div>
</div>
<div ng-messages="myForm">
<div ng-message="loaded" style="color:blue">Loaded</div>
</div>
</div>
參考
這聽起來像是你的做法是完全錯誤的。幾乎沒有理由超出角度來生成DOM元素,並且當你這樣做時,它應該被隔離到可以被編譯成角度的指令。沒有一個你想要做什麼的堅實範例,你爲什麼必須走出去,沒有解決你所描述的情況的方法。 – Claies
除此之外,你的措辭表明了對角度如何操作的誤解。 Angular *是* JavaScript,所以說你正在創建HTML「由JavaScript動態地」是一種氣味,你只是不知道如何有角度地幫助你完成任務。 – Claies
我正在製作一個formbuilder,其中HTML是由JavaScript動態生成的。每當用戶拖放一個元素。我將這些HTML元素保存爲JSON格式,並使用角度清理器將其呈現爲HTML格式。我試圖弄清楚這個錯誤,我大概知道我的ngmessages模塊首先被加載,然後ngsanitize被渲染。 –