Пожалуйста, смотрите эту jsfiddle: http://jsfiddle.net/viro/DK5pC/3/angularJS директива с изолированной сферой, атрибут привязки не работает
Что я сделал выглядит правильно по сравнению с обучающими программами и ответов, которые я нашел, так что я уверен, что я с видом что-то тривиальное.
Я пытаюсь сделать директиву над элементом html, который создаст дочерний div для отображения сообщения, связанного с исходным элементом.
, например, для этого HTML:
<input ng-model="inp" tst-msg="message" />
Я хотел бы создать в качестве родственного элемента:
<div class="msg">Msg:<span ng-bind="tstMsg"></span></div>
Я надеялся, что tstMsg
в области видимости Див был бы быть связан с message
в входной-х объем.
Вот что директива выглядит следующим образом:
angular.module('tst', [])
.directive('tstMsg', function(){
var template = "<div class='msg' >Msg:<span ng-bind='tstMsg'></span></div>";
var link = function(scope,element,attrs) {
element.parent().append(template);
console.log("link called");
};
return {
restrict: 'A',
scope: {
tstMsg: '='
},
link: link
};
});
Ну что не работает, и я не могу понять, почему.
вопрос: почему вы должны изменить объект возможности для {tstMsg: '= tstMsg'}? Я подумал, что просто «=» это сработает. –
Хороший улов - короткий ответ - да, только знак равенства является хорошим '{tstMsg: '='}'. Фоном является скрипта в вашей ссылке: 'tstBubble: '='', который я переключил на 'tstBubble: '= tstMsg''. Затем я увидел, что ваше сообщение использовало 'tstMsg' вместо' tstBubble', поэтому я переключил имена в коде в соответствии с вашим сообщением, но с помощью глобального поиска и замены. – KayakDave
Ах, не заметил этого. Я думал, что переименовал его в tstMsg, прежде чем публиковать ссылку. –