AngularJS: ng-if和ng-repeat在自定义导入后不起作用
AngularJS : ng-if and ng-repeat not working after custom transclusion
我正在尝试在angularJS中自定义透传指令,因为我需要将两个单独的元素透传到两个单独的位置。
问题是,虽然一些指令在转包内容工作中进行,如ng-bind
,但其他指令,如ng-if
或ng-repeat
,即使在用正确的作用域重新编译转包元素后也没有。
示例:http://jsbin.com/menakapoma/1/edit?html、js、输出
正如您在示例中看到的,ng-bind
工作,但ng-if
不工作,即使它们都在相同的作用域上并访问相同的值。ng-if
的真或假状态都不行
我相信这是因为ng-if
指令作为注释被转包,但是即使我将转包指令的优先级设置为9999
并在预链接函数中执行它,它仍然不起作用。
有谁知道如何让这些指令工作吗?
问题是,无论如何,到transclude
函数执行的时候,嵌套的指令已经被编译和替换为注释。
我已经通过完全放弃transclude选项,并通过$templateRequest
手动请求模板来实现这一点。
我指定了一个编译函数,该函数用注释占位符替换元素,以确保在请求期间不呈现任何内容。
在链接函数中,我手动编译模板,然后用它替换指令的元素。
查看更新后的示例:http://jsbin.com/rocedarono/3/edit?html,js,console,output
这当然不是最干净/最优的解决方案,我愿意接受任何其他能做得更好的解决方案。特别是任何DOM事件都必须在$templateRequest
承诺被解析后绑定,并在移除$destroy
事件之前检查是否存在,以确保它事先被解析。
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 扩展 ACE 编辑器,如何导入自定义文件
- 正在Angular 2中的扩展RouterOutlet中导入自定义服务以进行身份验证
- 将字段从自定义模块导入Odoo(V9)POS模块
- 导入 serval WebComponent 时,上一个自定义元素被下一个元素覆盖
- 在 iPython 笔记本中导入 JavaScript 文件以创建自定义小部件
- GAE jinja2 无法导入自定义 JavaScript 文件
- 聚合物HTML导入自定义元素
- Javascript自定义函数,用于将JSON格式的YQL查询响应导入谷歌电子表格
- 导入iPython自定义小部件函数(文件结构?)
- 可以'无法在Firefox插件SDK中导入带有require()的自定义模块
- 将自定义函数导入openCPU
- Angular 2.0-自定义构建/导入并使用“;关于发展;单元
- 谷歌地图API:当从KML导入标记时,无法自定义标记图像
- 如何将导入的样式表应用于自定义元素的模板标记内容
- 如何在JavaScript中将lodash直接导入到自定义命名空间中
- 是否可以像使用Browserify一样使用Webpack进行自定义导入
- 聚合物自定义元素:通过导入重用css
- AngularJS: ng-if和ng-repeat在自定义导入后不起作用