请参阅此代码。
html代码
<script type="application" id = "abc">
<md-dialog>
{{loadServerFile();}}
</md-dialog>
</script>
javascript代码
loadServerFile : function(){
$.ajax({
url: "/homepage/create"
success: function(){
console.log("success");
$scope.closeDialog();
}
});
}
此处closeDialog
关闭id = 'abc'
对话框。
但console.log("success")
来电的次数超过了10次。
为什么会出现这种问题? 如何调用此函数一次?
javascript代码
angular.module("imageedit").service('canvas',['$rootScope','$mdDialog'],function($rootScope, $mdDialog){
...
start: function(url){
$mdDialog.show({
template: $('abc').html()
controller: 'GGG'
clickOutsidetoClose: false,
})
...
}
...
})
我在这里打电话给$mdDialog.show
来调用对话框。
但实际上我只想在loadServerfile
控制器中调用GGG
。
你有答案吗?
我期待的是:$rootScope.call(loadServerFile);
答案 0 :(得分:0)
根据新信息,不想要对话,在GGG控制器中添加此代码,该代码将运行一次。它会将调用结果放在$scope.homepageCreateResult
中。如果您根本不需要进行此调用,并且不需要该对话框,请删除您引用的所有代码。
$scope.homepageCreateResult = {};
$http.get("/homepage/create")
.then(function(resp) {
console.log('success', resp);
$scope.homepageCreateResult = resp.data;
});
在您的HTML中,只需删除所有内容:
<script type="application" id = "abc">
<md-dialog>
{{loadServerFile();}}
</md-dialog>
</script>
答案 1 :(得分:-1)
在许多代码中,closeDialog
函数只隐藏对话框而不是真正关闭对话框
showDialog
可以多次调用
您无法看到,但根据您的问题,console.log
被多次调用,因此我的期望是正确的。