angularjs指令的&=@<?

1.&

 function uploadPanel(PathUtils) {
        return {
            restrict: 'E',
            bindToController: {
                "uploadFunction": '&',//传一个function
                "downloadFunction":'&?', //也是传一个function,可传可不传,?跟<的功能一样的    
            },
            scope: {},
            controller: ['PathUtils', UploadCtrl],
            controllerAs: 'uploadCtrl',
            templateUrl: PathUtils.qualifiedPath("/common/directive/upload-panel.html")
        }
    }
     function UploadCtrl(PathUtils) {
        var vm = this;
        vm.downloadTemplate = downloadTemplate;
        function downloadTemplate() {
            if(vm.downloadFunction== null)
                window.location.href = PathUtils.qualifiedPath(vm.template);
            else{
                vm.downloadFunction();//js闭包的性质
            }
        }
        }

例如:

<upload-panel id="upload" upload-function="typeModifyCtrl.uploadFile()"
                                  download-function="typeModifyCtrl.downloadTemplate()"></upload-panel>
<upload-panel id="upload" upload-function="typeModifyCtrl.uploadFile()"></upload-panel>
function TypeModifyCtrl($uibModalInstance,statusChangeTypeDao,ecnuSetTypeDao,FileExport, id) {
        var vm = this;
        vm.uploadFile = uploadFile;
        vm.downloadTemplate = downloadTemplate;
         function uploadFile(){
            statusChangeTypeDao.uploadChangeTypeById(id,vm.item.changeFile , function(response){
                vm.item.changeFile = null;
            });
        }
}
function downloadTemplate(){
           statusChangeTypeDao.getFileUrl(vm.item.majorCode, vm.item.minorCode ,function(response,status, headers, config){
              //处理文件的过程
           })
       }

2.=

双向绑定

function uploadPanel(PathUtils) {
        return {
            restrict: 'E',
            bindToController: {
                "maxFileSize":"=",//双向绑定
            },
            scope: {},
            controller: ['PathUtils', UploadCtrl],
            controllerAs: 'uploadCtrl',
            templateUrl: PathUtils.qualifiedPath("/common/directive/upload-panel.html")
        }
    }
<upload-panel id="upload" max-file-size="typeModifyCtrl.maxFileSize"></upload-panel>

3.&

单向绑定,有去无回

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值