angularjs-获取附加到指令的过滤器
使用angularjs-获取附加到指令的过滤器,angularjs,Angularjs,使用angular,我遇到了这样一种情况:我编写了一个自定义指令,然后编写了一些过滤器 我已经做了大量的搜索,但还没有找到一个明确的方法,一旦附加了指令,就可以将过滤器从指令中移除。他们是这样依附的 <div ng-data-bind="Model.Tags | format:'json'"></div> 现在,过滤器只是非常简单的。我还没有向它添加任何真正的功能,因为我需要做的很多事情都在指令中 .filter('format', function(){ ret
angular
,我遇到了这样一种情况:我编写了一个自定义指令,然后编写了一些过滤器
我已经做了大量的搜索,但还没有找到一个明确的方法,一旦附加了指令,就可以将过滤器从指令中移除。他们是这样依附的
<div ng-data-bind="Model.Tags | format:'json'"></div>
现在,过滤器只是非常简单的。我还没有向它添加任何真正的功能,因为我需要做的很多事情都在指令中
.filter('format', function(){
return function(text, value) {
}
});
因此,在我编写的ngDataBind
指令中,我希望获得格式
过滤器和传递给它的参数
我查看了$filter
服务,它似乎没有这样做。我试图从指令上通过link
传递的attributes
参数中解析它,但得到的只是一个不太有用的巨大字符串
任何地方都有这方面的信息吗
更新
经过比我有更多经验的人的审查,我采取了不同的方法,因为这显然不是过滤器的适当使用
我将使用的方法是在指令上创建属性,这些属性的赋值类似于表达式,例如
<div c-data-bind="{ value: 'Model.Tags', format: 'json' }"></div>
我使用这种方法是因为预期输入具有一定的一致性(总是要求内容包含在
'
中,而不是引用类型之间的不匹配),并且它允许扩展指令,而不必稍后添加更多指令。我不确定这是不是一个好方法,但是。。。它似乎起作用了。您的方法已关闭。指令本身不应与过滤器有关
过滤器将根据其逻辑处理绑定数据
指令将接收过滤后的数据,并根据其逻辑对其进行操作
这两个人都不需要知道对方。如果你需要,你的设计是有缺陷的
参见您的问题不清楚。向我们展示您的指令代码、文件管理器代码和使用它们的代码,并告诉我们您想要实现什么。当然。请给我一点时间,我会的。我想我确实包含了代码,我想我只是心不在焉。好吧,我已经用我第一次放的东西更新了它。过滤器将过滤数据模型标记,过滤器的结果将传递给您的指令。就像在JavaScript中一样,
foo(bar(tags))
将bar(tags)
的结果传递给函数foo()。在foo()
内部,您不关心参数是如何传递给函数的,也不知道调用了bar()
。您想要实现什么?将ng
用于您自己的指令是非常糟糕的做法。可能会与angularHey的未来版本发生冲突,谢谢您提供的信息。我可以承认这一点,但您能否告诉我,除了生成大量额外指令之外,您建议向指令传递多个选项的另一种方式?例如,我建议添加附加属性data myns format=“json”。不要使用ng名称空间这是为angular core保留的:)嘿,我已经更新了原始帖子来描述我是如何解决这个问题的。如果你想看到最终的结果,你可以在这里看一下:-这个指令如此巨大和淫秽,其原因是让这些小部件(目前不支持完整的JSON对象)在Telerik发布正式的行为修复程序之前获取真实的对象。
<div c-data-bind="{ value: 'Model.Tags', format: 'json' }"></div>