Я впервые работаю с Угловой версией 1.2.2 и пытаюсь создать простую директиву, использующую область выделения с привязкой '=' для передачи объекта. Я делал это несколько раз раньше, поэтому мне интересно, возможно ли изменение в 1.2.2, которое изменило это?Директива Isolate Scope 1.2.2
Вот моя директива:
.directive('vendorSelector', function (VendorFactory) {
return {
restrict: 'E',
replace: true,
scope: { vendorId: '=' },
template: '<select ng-model="vendorId" ng-options="id for id in vendorIds">' +
'<option value="">-- choose vendor --</option>' +
'</select>',
link: function (scope, element, attrs) {
VendorFactory.getVendorIds().then(function(result) {
scope.vendorIds = result;
});
}
}
})
Мой шаблон HTML с помощью директивы выглядит следующим образом:
<div class="padding">
<vendor-selector vendorId="someValue"></vendor-selector>
{{ someValue }}
</div>
И контроллер изнанка:
.controller('AddProductController', function($scope, ProductFactory, AlertFactory) {
$scope.vendorId = 0;
$scope.someValue = undefined;
})
Я попытался с помощью как $ scope.someValue, так и $ scope.vendorId как предоставленный объект в шаблоне html. В обоих случаях ошибка, которую я возвращаю, - Expression 'undefined' used with directive 'vendorSelector' is non-assignable!
. Я упускаю что-то очевидное, что мешает этим значениям быть двунаправленными в области выделения?
Спасибо! Вы джентльмен и ученый. Я должен был знать лучше, так как я соответствующим образом изменил название директивы для camelCase, просто полностью упустив атрибут: P –
В версии 1.2 произошла куча изменений, в том числе связанных с изолированной областью, поэтому я полностью отношусь к вашему мышлению , Всегда пожалуйста! – KayakDave
Там было множество изменений: А именно, это работает! (Не принимает во внимание неизолирующие директивы для одного и того же элемента.) Кроме того, приоритет привязки в обратном порядке. – jpsimons