我希望有一个相当简单的解决方案。
我设置了一个从文件加载 HTML 的指令。然后应该使用 Angular 编译该 HTML。指令:
angular.module('wc.directives', [], function($compileProvider) {
$compileProvider.directive('view', function($compile) {
return function(scope, element, attrs) {
scope.$watch(
function(scope) {
// watch the 'view' expression for changes
return scope.$eval(attrs.view);
},
function(value) {
// when the 'view' expression changes
$.ajax({
url: '/partials/' + value,
success: function(data) {
element.html(data);
$compile(element.contents())(scope);
}
});
}
);
};
});
});
应该加载的东西的一个例子(在玉中)
input#nameInput.nameField(ng-model='name', type='text')
h1 {{ name }}
页面加载时,{{ name }} 可见。但是,当您开始在文本字段中输入时,{{ name }} 会更新为您输入的任何内容。
如果element.html
and$compile
语句不在 ajaxsuccess
回调中,那么一切都会按预期编译。