我无法 $ compile 在我的指令中正常工作。我试图在内部使用 ng-bind 指令将html插入元素。我将变量从选择器服务传递给ng-bind。
当我显示我的html时,绑定不起作用。相反,我得到空元素。编译后的Html如下所示:
<div class = "song_info ng-binding ng-scope" data-ng-bind = "year"></div>
这是我正在使用的指令:
.directive("sortableQueue", ["$compile", "selector", function($compile, selector){
return{
scope : {},
link : function(scope, element){
element.sortable({
stop : function(event, ui){
//get helper html
var song_element = $(ui.item);
//logs correct value
console.log(selector.getValue());
var html = "<div class = 'song_info' data-ng-bind = '" + selector.getValue() + "'></div>";
var content = $compile(html)(scope);
song_element.html(content);
}
});
}
};
}])
有人知道我在这里犯了什么错误吗?任何帮助表示赞赏。
答案 0 :(得分:1)
一切正常。
答案在这里:
data-ng-bind = "year"
Angular试图找到年份变量。当然它无法找到它并且什么都不显示。您必须在范围内创建变量,从中获取数据。
答案 1 :(得分:0)
您使用隔离范围,我想您的变量年份是在父范围内定义的。 尝试替换:
scope : {},
通过
scope: true,