Angularjs 如何更新指令html并进行编译以使其响应?
用我的坏代码 我创建了一个简单的小指令(绝对不完整),它以最简单的方式显示日期选择器。当绑定到范围属性时,可以通过单击某一天来更新该属性。到目前为止,一切顺利。当然,你需要看看其他月份的情况。这就是事情变得棘手的地方。当有人单击顶部日期旁边的“”时,我正在重新生成绑定到template:property的HTML。当我这样做时,我试图$compile,以便所有的角度连接仍能按预期工作,但我缺少了$compile操作如何改变元素的一些信息。我用它来编译新的HTML:Angularjs 如何更新指令html并进行编译以使其响应?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,用我的坏代码 我创建了一个简单的小指令(绝对不完整),它以最简单的方式显示日期选择器。当绑定到范围属性时,可以通过单击某一天来更新该属性。到目前为止,一切顺利。当然,你需要看看其他月份的情况。这就是事情变得棘手的地方。当有人单击顶部日期旁边的“”时,我正在重新生成绑定到template:property的HTML。当我这样做时,我试图$compile,以便所有的角度连接仍能按预期工作,但我缺少了$compile操作如何改变元素的一些信息。我用它来编译新的HTML: element.replace
element.replaceWith($compile(getCalHMTL(month, year))(scope));
这是可行的,所有内容都连接到第二个调用,但是当第二个调用发出时(通过在编译html时单击“>”或“),元素不会被更新为新编译的html。 如果您将元素重新分配给新编译的html,它将起作用
scope.ChangeMonth = function(month, year){
var compiled = $compile(getCalHMTL(month, year))(scope);
element.replaceWith(compiled);
element = compiled;
}
下面是一个更新的小提琴,它使用的是有效的小提琴:
scope.ChangeMonth = function(month, year){
var compiled = $compile(getCalHMTL(month, year))(scope);
element.replaceWith(compiled);
element = compiled;
}