2015-04-23 50 views
0

我試圖在用戶關閉模式時使用console.log表單字段,但我不確定如何執行此操作。在Angular中關閉模式時記錄表單字段值

當我使用下面的代碼時,表單字段中的輸入未被反映。有任何想法嗎?

的Javascript:

.controller('ContactFormCtrl', 
function($modal) { 
    var contactForm = this; 
    contactForm.agreement = agreement; 
    contactForm.contact.signature = ''; 

return; 

function agreement() { 

$modal.open({ 

    templateUrl: 'views/agreement.html' 
    }) 
    .result.then(
    function() { 
     var agreement=contactForm.contact.signature; 
     console.log(agreement); 
     (contactForm.value1 = true); 

    }, 
    function() { 
     contactForm.value1 = false; 
    } 
); 
} 
}); 

HTML:

<form name="paymentForm"> 
    <div class="form-group> 
    <label class="control-label" for="signature">Signature</label> 
    <input type="text" id="signature" name="signature" ng-model="contactForm.contact.signature" aria-describedby="signatureWarning" placeholder="Signature (e.g., /John Doe/)" class="form-control" ng-minlength=1 ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }" required /> 
</div> 

<button ng-click="$dismiss()" class="btn btn-warning">Cancel</button> 
<button ng-click="$close()" class="btn btn-primary" ng-disabled="paymentForm.$invalid">I Agree</button> 

回答

0

你必須更輕鬆地處理模態控制器內的表單數據比你提取它。從$modal以外訪問示波器並不是一個很好的/推薦的方法,特別是因爲模態本身有幾個示波器層。

這將是最好有一個save方法或東西:

$scope.save = function() { 
    // POST data somewhere, save to a service, whatever 
    $modalInstance.$close(); // or whatever the API is 
} 

<button ng-click="save()" class="btn btn-primary" ng-disabled="paymentForm.$invalid">I Agree</button> 
+0

感謝您的答覆。那麼是不是可以通過我現在使用的代碼在模態的輸入字段中傳遞文本? – Ken

+0

如果您在控制器*內處理*,可以「傳遞」這些值。嘗試從外部組件訪問這些值將會很困難,而且不是安全的方法。你會潛入孩子的範圍,等等你想通過他們?您可以發出xhr請求與服務器通話,使用服務共享數據,甚至觸發事件。 – helion3

+0

我想我可能自己想出了這個。我的目標是要有一個模式,要求用戶簽署他/她的名字來同意服務條款。當模式關閉時,我想要保留該信息,直到表單的其餘部分完成。提交表單時,我希望模型中的信息簽名信息也可以提交。所以「/ John Doe /」將與表格的其餘部分一起提交。 – Ken

相關問題