AngularJS $编译无法正常工作

时间:2016-06-23 12:17:23

标签: javascript jquery angularjs

我无法 $ 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);
                }
            });
        }
    };
}])

有人知道我在这里犯了什么错误吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

一切正常。

答案在这里:

data-ng-bind = "year"

Angular试图找到年份变量。当然它无法找到它并且什么都不显示。您必须在范围内创建变量,从中获取数据。

答案 1 :(得分:0)

您使用隔离范围,我想您的变量年份是在父范围内定义的。 尝试替换:

scope : {},

通过

scope: true,