我正試圖在未來某個時間將所需的指令添加到元素。 在該示例中,如果模型字段很髒,則需要使用該元素。 我試圖設置所需的屬性(有點樂觀) 我現在正在編譯和鏈接元素,並嘗試用新元素替換舊元素。將指令添加到現有元素
我的元素剛剛從頁面中消失? 我正在以正確的方式去做這件事嗎?
app.directive('requiredIfDirty', function ($compile, $timeout) {
return {
restrict: "A",
require: // element must have ng-model attribute.
'ngModel',
link: // scope = the parent scope
// elem = the element the directive is on
// attr = a dictionary of attributes on the element
// ctrl = the controller for ngModel.
function (scope, elem, attr, ctrl) {
var unsubscribe = scope.$watch(attr.ngModel, function (oldValue, newValue) {
if(angular.isUndefined(oldValue)) {
return;
}
attr.$set("required", true);
$timeout(function() {
var newElement = $compile(elem)(scope);
elem.replaceWith(newElement);
}, 1);
unsubscribe();
});
}
};
});
它只是一個例子,問題仍然是如何動態地向現有元素添加指令。感謝所需的指針 – 2013-04-10 02:47:49