【发布时间】:2015-08-05 23:26:19
【问题描述】:
我可能在这里完全忽略了全局,但我想要做的是有条件地包含基于我正在绘制表单的对象的指令。示例:
$scope.formItems = [
{type : 'text', directive: 'google-country'},
{type : 'text', directive: 'google-city'},
]
这是一个包含大约 40 个字段的对象的非常小的细分,但是我只是希望能够将指令名称的字符串表示解析为对象中指令的值,并让它输出并运行所述指令在表格上:
<div class="fields" ng-repeat="field in formItems">
<input type="{{field.type}}" {{field.directive}} />
</div>
这可能吗?还是我必须做一些不同的事情?
我认为问题在于它自己不评估的指令。这就是上述 ng-repeat 的评估方式:
<input type="text" {{field.directive}}>
编辑:
我现在将指令限制为一个类,并且简单地将 field.directive 标记包含在类中并且应该绑定正确吗?核电站。它评估了正确的字符串,但是该指令未绑定。然后我做了另一个测试,以确保指令通过硬编码名称来工作,并且工作正常!所以我认为指令是在评估这个范围之前绑定的?
【问题讨论】:
-
值得一读 - 正是你的情况onehungrymind.com/angularjs-dynamic-templates
-
嗨@JanisP,我已经在运行编译,我知道我的示例中根本没有提到这一点,但我正在这样做,我认为我的问题是 field.directive表达式不计算,它只是吐出标签,你知道为什么吗?
-
试图在 dom 中做太多...需要将其连接为指令中的字符串或为各种类型预先构建模板并在指令 js 中编译
标签: angularjs angularjs-directive angularjs-ng-repeat