我如何使用 ng-include 来包含一个表单并在应用程序的两个不同部分处理它?

How do I use ng-include to include a form and handle it in two different parts of an app?

假设我有一个包含几个字段(街道、城市、州等)的地址表。用户第一次输入地址时,他通过向导完成。所以我创建了一个由 WizardAddressController.createAddress() 处理的表单 (formAddress),它是这样的(为清楚起见进行了简化):

self.createAddress = function ( form ) {
    self.user.all('addresses')
        .post( self.new_address )
        .then( function (address) {
            $state.go('next_step');
        });
};

到目前为止一切顺利。现在我必须在应用程序的不同部分(用户仪表板中的模态 window)使用相同的表单和相同的处理代码,让用户添加其他地址并编辑现有地址。

我想使用 ng-include 来包含表单(效果很好)并且我想使用相同的 createAddress() 函数,但我不能为此使用 ng-controller很重要,因为我需要代码以不同的方式解析(而不是进入下一步,它应该关闭模式并显示成功通知)。

当然,我想在这里表现得尽可能干(Don't Repeat Youself)。

指令的优秀候选者。创建自定义指令并将回调传递给它以在完成后调用。

您将与父控制器共享作用域,以便更新数据。