в HTML я называю свою директиву с: <div godata-pagination count="{{pagination.count}}" size="{{pagination.size}}" page="{{pagination.page}}"></div>
директива ссылка ATTRS не работает
тогда моя директива выглядит внутри:
function link(scope, element, attrs) {
console.log('attrs: ' + attrs.size);
scope.pagCount = attrs.count;
scope.pagPage = attrs.page;
}
return {
restrict: 'A',
transclude: true,
scope: {
count: '@',
size: '@',
page: '@'
},
templateUrl: 'partials/godata/pagination.html',
link: link
};
В частичном (частичных/godata/pagination.html) я могу доступ к этим переменным (количество, размер и страница). Для 100% в частичном i я имею доступ к этим трем переменным, и никому другому в этой области.
Но я сделаю что-то с этими переменными в функциональной ссылке. Если я пытаюсь получить доступ к этим переменным в функции связи через ATTRS, они пусты :(
Что плохого и/или то, что я могу сделать
Обновлено:
И с scope: false
переменная области не определена
И почему приносит строку attrs.$observe('page', function(val) { console.log('$observe: ' + val); });
в функциональной ссылке два выхода ... один с одним и без значения?
UPDATE снова:
function link(scope, element, attrs) {
console.log('scope: ' + scope.size);
console.log('scope: ' + scope);
console.log('attrs: ' + attrs.size);
console.log('attrs: ' + attrs);
attrs.$observe('size', function(size) {
console.log('$observe: ' + size);
if(size) {
scope.pagSize = size;
}
});
console.log('after observe; pagSize: ' + scope.pagSize);
}
... принеси мне:
Но scope.pagSize
имеет значение в браузере.
Как я могу работать с этими атрибутами в моей директиве, если я не могу получить к ним доступ ?!
http://stackoverflow.com/questions/11913841/accessing-attributes-from-an-angularjs-directive – Dfr
Попробуйте консоль зарегистрировать весь объект attr и посмотреть, что внутри. – Bazinga
есть пустая Object 'scope: [object Object]' и 'attrs: [object Object]' – allapow