У меня есть эти две директив:угловой ошибка: Multiple директивы просящей новый/изолированного объем
app.directive('autofocus', function ($timeout) {
return {
scope: {
trigger: '=autofocus'
},
replace: false,
link: function (scope, element) {
scope.$watch('trigger',
function (value) {
if (value) {
$timeout(function() {
element[0].focus();
});
}
}
);
}
};
});
app.directive('checkCustomerName', function(Customer) {
return {
require: 'ngModel',
scope: {
value: '=ngModel'
},
link: function(scope, elm, attrs, model) {
var CUSTOMERNAME_REGEXP = /^([ \u00c0-\u01ffa-zA-Z'\-])+$/;
var retval;
model.$parsers.unshift(function(viewValue) {
if (CUSTOMERNAME_REGEXP.test(viewValue)) {
var current = attrs.customerId;
var exists = Customer.findByName(viewValue);
if (exists && exists !== current) { // customer name exists already
model.$setValidity('taken', false);
model.$setValidity('invalid', true);
} else { // customer name does not exist
model.$setValidity('taken', true);
model.$setValidity('invalid', true);
retval = viewValue;
}
} else { // customer name is not valid
model.$setValidity('taken', true);
model.$setValidity('invalid', false);
}
return retval;
});
elm.bind('blur', function() {
if (model.$viewValue) { // capitalize all words in value
model.$viewValue = capitalizeAllWords(model.$viewValue);
model.$render();
}
});
}
};
});
Они работают smootly при использовании separatedly, но, когда он используется в том же элементе, я получаю:
Multiple directives [autofocus, checkCustomerName] asking for new/isolated scope on:
<input type="text" autofocus="true" check-customer-name>
Как я могу позволить им работать togheter?
(К сожалению, я не копаться в нг-директивах логики, но ... :-().
У меня такая же проблема и я попытался это решение, но оно всегда дает мне значение * undefined * Не могли бы вы рассказать мне, что мне не хватает? –