Javascript AngularJS:使用指令预先编写HTML
Service.jsJavascript AngularJS:使用指令预先编写HTML,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,Service.js this.showSpinner = function (Id) { angular.element("<wave-spinner id='spinner00' ng-show='true'></wave-spinner>").remove(); var myEl = angular.element(document.querySelector("#header00")) myEl.prepend($compile("<
this.showSpinner = function (Id) {
angular.element("<wave-spinner id='spinner00' ng-show='true'></wave-spinner>").remove();
var myEl = angular.element(document.querySelector("#header00"))
myEl.prepend($compile("<wave-spinner id='spinner00' ng-show='true'></wave-spinner>")($rootScope));
};
this.showSpinner=函数(Id){
angular.element(“”.remove();
var myEl=angular.element(document.querySelector(“#header00”))
myEl.prepend($compile(“”($rootScope));
};
HTML
<div id="header00" style="">Some Content</div>
一些内容
我尝试使用中提到的prepend
方法,但它不起作用
header00
之前显示指令。append与
指令,但不是。在匹配的div之前添加任何html内容
元素remove()
对我不起作用您可以这样做:
<wave-spinner id='spinner00' ng-show='isLoadingContent'></wave-spinner>
<div id="header00" style="">Some Content</div>
您可以这样做:
<wave-spinner id='spinner00' ng-show='isLoadingContent'></wave-spinner>
<div id="header00" style="">Some Content</div>
您的代码只需要简单的更改。将不存在的before功能切换到prepend(您说您已经尝试过了,但我相信这是解决此问题的方法)
myEl.prepend($compile(“”($rootScope));
当然,我签入了JSFIDLE-您的代码只需要简单的更改。将不存在的before功能切换到prepend(您说您已经尝试过了,但我相信这是解决此问题的方法)
myEl.prepend($compile(“”($rootScope));
为了确保我签入了JSFIDLE-wave spinner将是前置的,我已经显示了最终的dom。另外,当用户再次执行相同的操作时,我如何首先删除它?如果您希望它不仅隐藏,而且不在html中生成,那么使用ng if而不是ng show,ng if不会在dom中生成元素,唯一的技巧是它会创建一个额外的内部作用域。我将使用一个方法,只需对
isLoadingContent
的当前值求反,就像这样this.isLoadingContent=!这是一个.isLoadingContent当需要显示/隐藏时,在这两种情况下都调用code>方法。wave spinner
将前置到div,并且不会在加载时显示/隐藏。然后我看不到ng show='true'
中的任何点,并且您的方法比角度方法更具jQuery性。我真的不明白为什么不把它放在html中,但必须附加/前置它。请详细说明为什么您坚持使用这种方法?因为我希望在用户执行任何操作时调用该指令,而不是在页面上。loadwave spinner将是前置的,我已经显示了最终的dom。另外,当用户再次执行相同的操作时,我如何首先删除它?如果您希望它不仅隐藏,而且不在html中生成,那么使用ng if而不是ng show,ng if不会在dom中生成元素,唯一的技巧是它会创建一个额外的内部作用域。我将使用一个方法,只需对isLoadingContent
的当前值求反,就像这样this.isLoadingContent=!这是一个.isLoadingContent当需要显示/隐藏时,在这两种情况下都调用code>方法。wave spinner
将前置到div,并且不会在加载时显示/隐藏。然后我看不到ng show='true'
中的任何点,并且您的方法比角度方法更具jQuery性。我真的不明白为什么不把它放在html中,但必须附加/前置它。请详细说明为什么您坚持使用这种方法?因为我希望在用户执行任何操作时调用该指令,而不是在页面加载时
myEl.prepend($compile("<wave-spinner id='spinner00' ng-show='true'></wave-spinner>")($rootScope));