gpt4 book ai didi

javascript - 在我的例子中如何将 html 添加到 Angular 中?

转载 作者:行者123 更新时间:2023-12-03 11:00:31 24 4
gpt4 key购买 nike

我正在尝试创建一个指令,当用户单击按钮时添加大量 html。

angular.module('myApp').directive('testProduct', function() {
return {
restrict: 'A',
link: function(scope, elem) {
var html;
html = '<div>… a lot of html tags and contents………….';
// a lot of html tags
//I want to link to a html file like product.html
//instead of defining here.
elem.bind('click', function() {
$('.product').remove();
elem.closest('div').append(html);
})
}
};
}
);

我可以将 html 链接到另一个文件吗?像templateUrl:product.html?我不能在这里使用它,因为我只想在用户单击按钮时添加这些 html。

非常感谢!

最佳答案

在点击事件中创建一个类似 <div ng-include="foo.html"></div> 的元素并将其传递给 angular.element。然后将其附加到 DOM。添加后,使用注入(inject)的 $compile 服务。 $compile(dynamicIncludeElement)(scope) .

angular.module('myApp').directive('testProduct', function($compile) {
return {
restrict: 'A',
link: function(scope, elem) {
var html = angular.element('<div ng-include="'product.html'"></div>');

elem.bind('click', function() {
var compiledHtml = $compile(html)(scope);
elem.append(compiledHtml);
})
}
};
}
);

另一种选择是自己获取 HTML 并编译它。

angular.module('myApp').directive('testProduct', function($http, $compile) {
return {
restrict: 'A',
link: function(scope, elem) {

elem.bind('click', function() {

$http.get('product.html')
.success(function(data) {
var compiledHtml = $compile(data)(scope);
elem.append(compiledHtml);
}
);

})
}
};
}
);

关于javascript - 在我的例子中如何将 html 添加到 Angular 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28117418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com