将模型绑定到模态局部视图.NET MVC / Angularjs

时间:2015-11-29 04:12:19

标签: angularjs asp.net-mvc modal-dialog asp.net-mvc-partialview

我有一个名为Details的部分视图,其中包含一个按钮,单击此按钮可以显示另一个名为Edit的部分视图。一切正常,我能够将Detail数据发送到Edit,并进行编辑。但是,要求已经改变,现在部分视图Edit需要以模态显示。现在我无法将Detail对象发送到现在的Edit模式。

启动Edit模态的控制器方法:

MyController.prototype.showEditModal = function (someObject) {
    var ctrl = this;
    ctrl.objectToBeEdited = {
        Id: someObject.Id,
        Name: someObject.Name,
        //etc...
    }

    var modal = myModal
        .open({
            templateUrl: "Edit",
            controller: MyController,
            controllerAs: "myCtrl",
            resolve: {
                objectToBeEdited: function () {
                    return angular.copy(ctrl.objectToBeEdited);
                }
            }
        });
}

Edit局部视图:

<form name="frm" role="form" form-ext submit-ext="myCtrl.edit()">
    <h3>Edit - {{myCtrl.objectToBeEdited.Name}}</h3> <!--Name not rendered in H3 tag-->

    <div>
        <label for="id">Object ID</label>
        <!--Id not rendered inside input-->
        <input name="id" type="text" ng-model="myCtrl.objectToBeEdited.Id" required />
    </div>
    ...for brevity
</form>

似乎objectToBeEdited没有绑定到ng-model。如何将Detail局部视图中显示的模型发送到Edit局部视图模式?

1 个答案:

答案 0 :(得分:0)

您可以制作发送到模式的someObject副本。此对象不会绑定到原始对象,您可以尝试将someObject本身传递给Edit页面。如果您这样做,您可以复制someObject并保留作为备份,以便在用户按下模式中的取消按钮时恢复原始数据。