我的HTML中有以下内容:
<markdown abc="{{ q.qv.text }}"></markdown>
和这个指令:
app.directive('markdown', function () {
var converter = new Showdown.converter();
return {
restrict: 'E',
link: function (scope, element, attrs) {
var htmlText = converter.makeHtml(attrs.abc);
element.html(htmlText);
}
}
});
当页面出现时,我进行HTTP调用以获取数据,该指令有效,获取q.qv.text的 last 值并显示它。在此之后,HTTP调用返回并填充q.qv.text。
但到那时q.qv.text的旧值已经显示。
如何才能使该指令对q.qv.text中的更改做出反应并调用converter.makeHTML来处理新值?
答案 0 :(得分:2)
app.directive('markdown', function () {
var converter = new Showdown.converter();
return {
restrict: 'E',
scope: {
abc: '=abc'
}
link: function (scope, element, attrs) {
scope.$watch('abc',function(newvalue){
element.html(newvalue);
});
}
}
});