有条件地选择模型

简化

我有一个UI组件,试图通过支持两种不同的数据格式来保持灵活性。

我想有条件地选择哪个范围属性与成对ng-model的的input元件。

这段代码不起作用,但表达了我的意图:

<input type="text"
       ng-model="treeNode.attachedEntity.name || treeNode.name"
/>

以下代码有效,但重复很多(此示例很简单,但是在实际应用程序中,此输入附加了很多行为)

<!-- Rename File -->
<input ng-if="!treeNode.attachedEntity"
       ng-model="treeNode.name"
       type="text"/>
<!-- Rename Folder -->
<input ng-if="treeNode.attachedEntity"
     ng-model="treeNode.attachedEntity.name"
     type="text"/>

背景(如果有帮助的话):这会像文件系统那样建模,其中将对象附加到表示文件夹结构的treeNode上。没有附加对象的treeNode是一个文件夹。我想要一个重命名操作,该操作根据操作对象来决定是否重命名文件夹或文件。

有什么方法可以构建此代码,从而使模板代码更简单?扩展ng-model的指令?我不知道的ng-model选项吗?控制器中的getter函数是否返回正确的模型?

谢谢!

达扬·莫雷诺·莱昂

是的,吸气剂将是我的想法

ng-model="getModel(param)[property]"

getModel将返回对对象的引用,而您要观察的缺点是,您必须返回对象引用而不是属性以保持链接。

http://jsfiddle.net/NhPEN/这样的东西可以说明我的观点。非常简单,没有意义,但演示了如何使用函数来检索对象并将其属性用作模型,可以使用其他函数生成属性名称并使之完全动态

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章