我有一个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] 删除。
我来说两句