上更新視圖我使用的是優秀的AngularJS Rails Resources,並與一個對象 - 這反過來又深嵌套的對象 - 當我更新它的一些屬性,更新的屬性不會在模板上顯示,直到我重新加載頁面。角JS不是嵌套對象
讓從頭開始:這是我的目標:
var invoice = Invoice.get($stateParams.invoiceId).then(function (result) {
$scope.invoice = result;
});
這裏就是我打開我的模式來編輯值:
$scope.openEdit = function (edit) {
$scope.editModal = $modal.open({
templateUrl: 'editModalContent.html',
controller: 'InvoiceShowController',
size: 'lg'
});
$scope.editModal.result.then(function(select) {
});
};
$scope.cancel = function() {
$scope.$close();
};
$scope.ok = function() {
$scope.invoice.update().then(function (result) {
$scope.cancel();
console.log(result);
});
};
在我看來,我有以下幾點:
...
<li>{{invoice.trading_details.trading_name}}</li>
<li>{{invoice.trading_details.trading_address_1}}</li>
...
在模態的身體我有以下幾點:
...
<div class="form-group">
<label for="exampleInputEmail1">Trading Name</label>
<input ng-model="invoice.trading_details.trading_name" type="text" class="form-control" id="exampleInputEmail1">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Trading Address Line 2</label>
<input ng-model="invoice.trading_details.trading_address_1" type="text" class="form-control" id="exampleInputEmail1">
</div>
...
所以,當我在編輯模態的屬性和安慰的對象,這些變化都在那裏。當我保存並取回結果時,所做的更改就在那裏,但無論出於何種原因視圖未更新。
任何想法?
編輯:我的整個controller
我有,你有兩個不同的範圍兩個不同的'invoice'對象的感覺。你可以嘗試在視圖和模式中註銷$ scope。$ id嗎? – BroiSatse
@BroiSatse你是對的。 ID是不同的。在這種情況下,我怎樣才能將相同的'$ scope'傳遞給模態?有一件事讓我印象深刻:在Angular Bootstrap例子中,爲什麼需要兩個控制器? – WagnerMatosUK
嗯,說實話它並不能證明什麼。 Modal在您自己的範圍內運作,這是您視野範圍內的一個孩子。但是,這意味着您的模態範圍發票與您的視圖發票完全一樣,除非您在控制器中重寫了它。你介意發佈你的InvoiceShowController嗎? – BroiSatse