Javascript AngularJS向指令发送图像(和显示指令)
在我看来,我绑定到文件上载,因此:Javascript AngularJS向指令发送图像(和显示指令),javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,在我看来,我绑定到文件上载,因此: <input type="file" name="file" onchange="angular.element(this).scope().photoChanged(this.files)"/> 我有这样的指示: .directive('imageCrop', function () { return { template: '<div style="display: none;"><p>Im
<input type="file" name="file" onchange="angular.element(this).scope().photoChanged(this.files)"/>
我有这样的指示:
.directive('imageCrop', function () {
return {
template: '<div style="display: none;"><p>Image!</p></div>',
restrict: 'E',
link: function postLink(scope, element, attrs) {
element.text('this is the imageCrop directive');
}
};
});
指令('imageCrop',函数(){
返回{
模板:“图像!”,
限制:'E',
链接:函数postLink(范围、元素、属性){
text('这是imageCrop指令');
}
};
});
我如何在控制器的方法中使该指令可见并向其发送我的图像
在这种情况下,哪种做法最好?将
ngModel
注入到您的指令中
<input type="file" name="file" onchange="angular.element(this).scope().photoChanged(this.files)"/>
<imageCrop ngModel="image" />
在您的
photoChanged
功能中,将上传的文件绑定到modelimage
。此外,在您的指令定义中需要ngModel
。使用$compile和add-into-document在控制器的方法中编译,或者在指令所在的位置使用ng(ommiting display:两种情况下模板中均无)。@IvoPeterka with controller不清楚……考虑一下,用每个新映像编译新指令只会带来释放已编译指令和内存需求的问题,所以这不是一个好方法。