2015-03-25 14 views
0

我有一個視圖,用戶輸入數據並將數據提交給服務器。同一個視圖有一個ng-table,用服務器響應數據進行更新。AngularJS MVC從工廠服務響應中創建模型對象,然後更新視圖上的數據

我想要做的是創建一個視圖,視圖從控制器中提取數據。控制器從模型中提取數據。該模型由工廠響應填充。

有沒有人有這個基本的例子?我找不到任何使用模型的例子。我想讓我的用戶界面中的其他控制器使用這個模型來共享數據。

我想不出的最大問題是如何在多個控制器之間共享數據。當數據更新時,我希望每個控制器都能獲取更新的數據,因此需要一個Model。

我打電話給Web服務來獲取我的數據。

任何代碼示例都會有幫助!謝謝

回答

0

我希望你想要的是這樣的東西。

在html中。

<div ng-app="myapp"> 
    ctrlA 
    <div ng-controller="ctrlA"> 
     <input ng-model="mymodel.name"> 
    </div> 

    ctrlB 
    <div ng-controller="ctrlB"> 
     <input ng-model="mymodel.name"> 
    </div> 
</div> 

在js。 (在此示例中,我建有靜態值清除本質的模式。然而,你也可以從服務器得到一些數據,建立模型。)

angular.module('myapp',[]).service('myservice', function(){ 
    this.sharemodel = { 
     name: undefined 
    } 
}) 

function ctrlA($scope, myservice){ 
    $scope.mymodel = myservice.sharemodel; 
} 

function ctrlB($scope, myservice){ 
    $scope.mymodel = myservice.sharemodel; 
} 

我設置jsfiddle

+0

我看到的問題是,如果您更新ctrlA中的數據,它不反映在ctrlB中。我一直無法解決這個問題。有任何想法嗎? – anad2312 2015-03-25 03:51:38

+0

在ctrlA中更改輸入值時,它**會在ctrlB中反映出來。這意味着更新ctrlA中的數據反映了ctrlB中的數據,因爲數據會受到相同的模型對象的影響。 如果您想在ctrlA中更清楚地更改,請參閱此更新的[jsfiddle](https://jsfiddle.net/yazaki/gdm59xrp/1/)。 – yazaki 2015-03-25 06:39:11

+0

我正嘗試通過服務調用更新模型,而不是通過用戶輸入。然後,讓視圖顯示更新的結果。例如,你有一個ng表。你也有一個按鈕來獲取數據。用戶單擊該按鈕並進行服務呼叫。我想要Factory服務調用響應來更新模型。當模型更新時,我想要ng-table加載新數據。我想通過應用程序中的任何控制器使用這些數據。我應該更清楚。任何這樣的例子?謝謝 – anad2312 2015-03-25 14:51:25

相關問題