Я пишу свою первую директиву в угловом формате - это, по сути, всего лишь оболочка виджета для поиска в свободной базе, написанная в jquery.Возвращаемые данные из угловой директивы
Я хочу сделать приложение директивы независимым (с единственными зависимостями, являющимися внешними css и jquery).
Here is a plunkr Директивы, как и сейчас.
И сама директива:
directive('suggest', function() {
return {
restrict: 'E',
template: "<input type='text'>",
replace:true,
link: function(scope, element, attrs) {
var language = 'en'; //set english as default language
if (attrs.lang){
language = attrs.lang;
attrs.$observe('lang', function(value) {
console.log("lang val " + value);
language = value;
});
}
$(element).suggest({
"lang": language
})
.bind("fb-select", function(e, data) {
console.log(data);
});
}
};
});
Когда пользователь выбирает элемент из выпадающего меню, следующая функция работает:
.bind("fb-select", function(e, data) {
console.log(data);
});
Что является лучшей практикой для подачи данных из выбор приложения, использующего его?
Спасибо за ответ. Можете ли вы объяснить, что вы имеете в виду, когда говорите, что мне нужно обработать начальную привязку в директиве? Вы имеете в виду scope.myModel = data; линия? – bornytm
Я не могу заставить это работать - я обновляю plunker – bornytm
@bornytm, что должна делать эта директива? т.е. желаемое поведение? Есть несколько вещей, которые следует указать, вы передаете «lang» через область выделения в определении вашей директивы, но затем вы смотрите его с помощью «attrs. $ Наблюдать», если он передается через область, в которой вы используете область $ watch', 'attrs. $ наблюдать' за просмотр параметров атрибутов, а не параметров области. Я предлагаю вам взглянуть вокруг, чтобы посмотреть, как создаются угловые директивы, много хороших блогов. –