AngularJs ng-if-else绑定两个数据模型

时间:2015-05-31 13:23:10

标签: javascript jquery html css angularjs

我想知道是否有比我正在做的更好的方式?

我需要根据$ scope.title值绑定两个不同的数据模型。因此,在下面的示例中,我为$ scope.title的每个值创建了两个单独的DIV。

我可以在<div>内进行吗?我也不在这里使用ng-if-else。在这个例子中我如何使用ng-if-else?

<div>
    <div ng-if="title == 'Add Student'">
    <input type="text" name="name"placeholder="Student Name" data-ng-model="registration.Student.FirstName" maxlength="50">
    </div>

    <div ng-if="title == 'Edit Student'">
    <input type="text" name="name"placeholder="Student Name" data-ng-model="student.Student.FirstName" maxlength="50">
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

是的,你可以:

<div ng-init="model = (title == 'Add Student' ? registration.Student : student.Student)">
    <input type="text" name="name" placeholder="Student Name" data-ng-model="model.FirstName" maxlength="50">
</div>

为了使其更清洁,您应该将ng-init中的部件移动到您的服务或控制器,因为最好将逻辑从您的视图中移除。如果您发布检索数据的服务或资源,我可以添加一个示例如何执行此操作。

在我看来,更清晰的解决方案是重构您的应用,以便学生模型始终具有相同的参考,以便将registration.Student到处更改为student.Student