小编Sha*_*sak的帖子

如何在本指令中使用bindToController,controller,controllerAs和require选项而不仅仅是带有隔离范围的链接函数?

场景:

假设我想创建一个drop in组件,它基本上是一个需要从用户那里获取一些输入,验证并将其保存在服务器上的表单.我需要公开一些回调,以便指令的用户可以根据服务器响应或用户单击取消按钮来执行他所需的操作.我希望这是一个元素指令<new-product-widget></new-product-widget>.现在我该怎么做呢?从我的角度来看,我可以简单地隔离指令的范围,并接受来自封闭控制器的函数作为属性; 例如:

<new-product-widget on-success="ctrl.onAddSuccess" on-error="ctrl.onAddError" on-cancel="ctrl.onAddCancel" on-invalid="ctrl.onAddInvalid"></new-product-widget>
Run Code Online (Sandbox Code Playgroud)

然后在我的链接功能中使用它们.然而通过指令文档会后,我认为这是一个更好的方式来做到这一点使用 bindToController,controller,controllerAsrequire选项.但是我很困惑如何使用这些功能以及它将提供的确切好处来重写它.任何通过示例解释这些内容的博客/视频链接都将是一个很大的帮助.

请阅读原始描述,它可以帮助您理解我的困惑.

原始描述.

我想编写孤立的可共享指令(组件).角度文档表明这些选项是相关的.

我的理解:

  • Controller允许我定义一个控制器构造函数.(这给了我什么特殊的权力.我应该做什么/不做什么)
  • ControllerAs允许指令范围内的控制器的别名.(为什么我需要访问构造函数?我应该手动实例化它)
  • Requireangular doc说 - 需要另一个指令并将其控制器作为链接函数的第四个参数注入. (呃......?为什么?怎么样?)
  • bindToControllerangular doc说 - 当一个组件使用隔离范围(见上文)并使用controllerAs时, bindToController: true将允许组件将其属性绑定到控制器,而不是范围.在实例化控制器时,隔离范围绑定的初始值已经可用.(我根本不明白这个选项.)

你能用一个例子来解释如何一起使用这些选项以及它们允许我实现哪些我无法使用链接功能?我很迷茫.

我正在使用角度版本1.4.x.

[Angular Doc我读过.] [1]

[1]:https://code.angularjs.org/1.4.7/docs/api/ng/service/ $ compile

javascript angularjs angularjs-directive

5
推荐指数
0
解决办法
538
查看次数

在服务器端裁剪与在客户端裁剪并发送 base64 字符串?

我希望允许我的用户上传具有特定尺寸限制的图像,因此需要进行裁剪。现在我发现了两个插件,一个是jcrop,另一个是种植者; Jcrop使用服务器端方法来裁剪图像。这是他们文档中的片段:

Web 应用程序中裁剪功能的典型工作流程如下所示:

上传或选择要裁剪的图像。显示带有裁剪界面的页面。在表单提交时捕获选定的坐标作为表单值。服务器执行图像裁剪。结果图像被保存、替换、更新、显示等

虽然cropper使用HTML5 canvas裁剪在客户端和发送图像base64串到服务器,其中服务器可以为图像并保存它解码。

我个人更喜欢第二种方法,因为我可以将字符串发送到里面json帮助我避免multipart form data内容类型,我可以继续使用application/json内容类型。然而,在阅读了 jcrop 方法后,我担心客户端裁剪技术的性能。哪种方法可以提供更好的性能并覆盖移动设备?每种方法的限制是什么,例如最大文件大小等。

html javascript canvas image

2
推荐指数
1
解决办法
1921
查看次数