у меня есть директива пользовательского элемента, например. как ниже
<my-wrapper ng-model="values.abc" unique-check="" list="list" prop="name"> </my-wrapper>
Эта директива требует ng-model, который позже устанавливается во внутреннем входном теге.
<input type="text" name="myfield" ng-model="'+attrs.ngModel+'"/>
проблема заключается в том, что когда я проверяю консоль, я вижу, что ng-модель в директиве не совпадает с ng-моделью во входном теге.
Как я могу убедиться, что ng-модель во внешнем теге не создается и создается только один раз внутри моей директивы.
мой код директивы ниже
app.directive("myWrapper", function(){
var templateFn = function(element, attrs){
return '<div ng-form="myform">'+
'<input type="text" name="myfield" ng-model="'+attrs.ngModel+'"/>'+
'<span>(inside directive) : isDuplicate:{{myform.myfield.$error.isDuplicate}}</span>'
'</div>';
}
return {
restrict :'E',
template : templateFn,
require: 'ngModel',
scope: true
}
});
Обратите внимание, что приведенное выше — это просто сокращенная версия моей директивы, и я сохранил область видимости: true из-за требований в общем сценарии.
Если непонятно, о чем я говорю, проверьте консоль ЭТОГО ПЛАНКА.
Я пробовал решения с terminal : true
и/или priority : 1001
, чтобы ng-модель создавалась не по директиве html, а только по входному тегу, но ни одно из них не сработало.
да, одним из решений может быть замена ng-model, скажем, my-model в директиве, а затем снова добавление ее как ng-model во входной тег, но тогда она используется почти в 1000 местах в моем приложении, так что на самом деле не будет хотелось бы заменить его таким.
любой другой способ решить эту проблему.
one solution can be to replace ng-model with lets say my-model on the directive and then again add it as ng-model on input tag
этот вариант я знаю, но просто хотел избежать. Что касается одной формы для каждого элемента управления, внутренняя директива, основанная на вводе, может иметь несколько вводов, в этом простом примере - я не хотел запутывать других, рассказывая логику, которую не так уж необходимо знать. 22.12.2014my-model
кажется проще, чем реструктуризация. Для структуры почему бы просто не использовать две директивыng-repeat
: одну над массивом форм и вторую над inputs/ng-models? 22.12.2014uniqueCheck
дает ошибку, потому что вы говорите ей, что требуется ngModel, ноterminal: true
специально останавливает создание ngModel 22.12.2014