Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs-获取附加到指令的过滤器_Angularjs - Fatal编程技术网

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>