0

私は angularjs を初めて使用し、アプリケーションで REST API 呼び出しを行っており、返された応答はモデル オブジェクトとして保存されます。私のビューでは、API からの応答をそのまま UI で使用できないため、別のビュー モデル オブジェクトを作成しました。

これは正しいアプローチですか?2 つの異なるモデルを使用していることに注意してください。1 つはサーバーからデータを取得し、もう 1 つは UI バッキング モデルとして使用されます。これは、Java フレームワークのバッキング Bean および DAO オブジェクトに似ています。

このアプローチが適切かどうか、または変更する必要があるかどうかをアドバイスしてください。もしそうなら、どのように?

更新http://jsfiddle.net/LGEKX/ で問題を説明しました

function mycontroller($scope){
//The view model is populated by a seperate method
var viewmodel = populateViewModel();
$scope.viewmodel = viewmodel;
}

function populateViewModel(){
//Call service to update local model
var backendModel = serviceCall();
//Invoke conversion service
var converteModel = convertBackEndModel(backendModel);
}

function serviceCall(){
//Service method calls server side API and the data returned is returned in success     callback
 $http({method: 'GET', url: '/someUrl'}).
  success(function(data, status, headers, config) {
    return data;
 }).
 error(function(data, status, headers, config) {
  ...
  });

 }

 function convertBackEndModel(data){
   //This takes the data returned from API call as input and creates a view model
  //which will be used for angularjs view (in HTML)
var viewModel = {};
 viewModel.name = backendModel.backendName;
 //Though this is simple, actual code has lots of logic which basically converts one    JSON structure to another
 }

そして私のHTMLで

<div ng-app>
<div ng-controller="mycontroller">
    <!-- Binding to viewmodel from the HTML-->
    <div ng-model="viewmodel.name"></div>
</div>

4

1 に答える 1