我想做这样的事情:
var build= (function(){
//my function body
})();
function test(){
//somthing then call build
build() //i want to call build function again in my code
}
我该怎么做? 我用角度尝试了这个:
var buildRoot = (() => {
$SubNode.get({
TypeID: vendorAdminService.NodeType.Category
}, function(data: vendorAdminService.IGetNodeParameters) {
$scope.ProductTree = data.TreeNodeModelItem;
$scope.AjaxLoading = false;
}, function(err) {
// alert(err)
})
})();
$mdDialog.show(confirm).then(function() {
$Category.Remove(node.ID)
buildRoot
}, function() {
});
但它不起作用。 任何人都可以指导我??
答案 0 :(得分:1)
您需要在IIFE中返回一个功能。 如果您的IIF不是微不足道并且具有许多功能,您还可以考虑使用Reveal Module Pattern。
string = "dsadaDAdasdsadDADADadsadADD"
new_string = my_downcase.call(string,0,11)
#=> "dsadadadasdsadDADADadsadADD"

答案 1 :(得分:1)
只需使用命名函数。
您的IIFE需要返回一个函数,以便稍后调用。但那时不需要匿名功能。
request.done(function( msg ) {
window.reloadFreelancersMission= data;
var number = reloadFreelancersMission.pagination[0].pagenbr;
window.pagination.ReloadPager(number);
});
或
function build() {
//my function body
}
答案 2 :(得分:0)
var build = (function() {
var init = function() {
// magic code
};
return {
init: init
}
}());
function test() {
build.init()
}
test();
您在构建对象中包含所有功能,并且只要从对象内部返回它们,您就能够立即调用它们。这实际上称为揭示模块模式
有关详细信息,请read this
答案 3 :(得分:0)
我发现缺少分号";"
<div class='site-wrapper'></div>
<div class='site-wrapper-title'>Hello World</div>