//html
<a ng-click="inviteMember.contact()">invite member by contact<a>
//javascript
$scope.inviteMember = {
contact: ContactInvitation,
};
function ContactInvitation() {
var modalInstance = $uibModal.open({
templateUrl: 'contact-invitation.tmpl.html',
size: 'md',
});
modalInstance.result.then(function(){},function(){});
}
//为什么写成下面这样就无效呢?
//var ContactInvitation = function() {
// var modalInstance = $uibModal.open({
// templateUrl: 'contact-invitation.tmpl.html',
// size: 'md',
// });
// modalInstance.result.then(function(){},function(){});
//};
var声明的变量不是有变量提升吗?但是你没看仔细,只是提前声明,不会提前定义。。
你注释的 那一段。。等同于
var ContactInvitation ;
$scope.inviteMember = {
contact: ContactInvitation, //ContactInvitation == undefined
};
ContactInvitation = function() {
var modalInstance = $uibModal.open({
templateUrl: 'contact-invitation.tmpl.html',
size: 'md',
});
modalInstance.result.then(function(){},function(){});
};
ContactInvitation 在调用之后才被定义
楼主可以把 var ContactInvitation
这样的声明放到$scope.inviteMember={}
前面去,楼主自己搜索 函数的申明这样的内容var 和 function 表达函数的时候效果是不一样的。
楼主基础不扎实啊,函数是直接提升到最上面。
变量的话是只是提升var ContactInvitation;