Я пытаюсь создать пользовательский компонент текстового поля электронной почты, который имеет два поля. Для этого у меня есть этот шаблон:AngularJS: привязка директивы
<div class="custom">
<div class="username" contenteditable="true"></div>
<div class="domain">@{{ domainValue }}</div>
</div>
Так что я могу ссылаться на директиву, которая вызывает этот шаблон, как:
<div ng-custom-txt></div>
Из директивы Я хочу, чтобы иметь возможность передавать различные виды значений (домены) из модели под названием «нг-domaindata», как:
<div ng-domaindata="mydomain1.com" ng-custom-txt></div>
Мой вопрос, как я могу связать директивы с полем «домен», который находится в шаблоне?
Я пытался использовать этот подход, но без успеха на всех:
Шаблон: customtemplate.html
<div class="custom">
<div class="username" contenteditable="true"></div>
<div class="domain">@{{ domainValue }}</div>
</div>
Page
<div ng-domaindata="mydomain1.com" ng-custom-txt></div>
<div ng-domaindata="mydomain2.com" ng-custom-txt></div>
Директива
app.directive('ngCustomTxt', function() {
return {
restrict: 'A',
require: '^ngModel',
templateUrl: 'customtemplate.html',
link: function(scope, element, attrs, ctrl) {
scope.$watch(attrs.ngDomaindata, function (newValue){
scope.domainValue = newValue;
}
}
}
});
Очевидно, что это не сработает, так как я не могу отличить эти два элемента, может ли кто-нибудь помочь мне с этим?
Просто быстрый наконечник. Избегайте использовать свою собственную директиву с префиксом ng. –