2016-09-23 9 views
0

ビュー間でデータを渡す必要があります。私はあなたが項目をチェックするビューを持っているし、あなたがチェックすることができる項目が置かれる別のビューを持っています。問題は、別のページにリダイレクトするときにすべてのデータを失うため、チェックされたアイテムのすべてのデータが失われることです。角度を使用して1つのビューから別のビューにデータを渡す方法

可能な解決策?:

すべての項目を保存するためのDBへの通話、その後、ちょうど行われたときに、あなたが実際にページに投稿することができますに

誰かが私に言った(サーバーの不適切な無駄な使用をようだ)を削除:その後、

保存アンギュラサービスのデータ(。私は変数に番号を保存することで、これを試してみましたが、それは働いていたように、それはいないようでした別のSOのポストでこれを見た)

EDITをリダイレクト10私はAngularJS工場について何かを見ましたが、動的なデータではうまくいかないようです。サービスのものを試してみたところ、うまくいかなかったようです。

サービステストのコードもここにあります。 TheresはGetTestメソッドとtestメソッドを呼び出すコントローラーメソッドだけでもあります。

MutualService

var test = function (data) { 
     test1 = data; 
     console.log(data); 
    }; 

Test: function (data) { 
    return test(data); 
}, 
GetTest: function() { 
    return test1; 
} 

View1を

<button style="float: right; margin-bottom:20px;" class="btn btn-sm btn-primary" onclick="changeLocation()"> Change Location</button> 
     <button style="float: right; margin-bottom:20px;" class="btn btn-sm btn-primary" ng-click="vm.Test(2)"> Purchase Order</button> 


<script> 
changeLocation = function() { 
       window.location.href = '/Purchasing/Manage/CreateEditPurchaseOrder'; 
      } 
</script> 

答えて

0

それではあなたはここで行うことができますして共有する値でAngularJSサービスを作成することです。各ビューのコントローラまたはディレクティブのいずれかにサービスを注入します。次に、両方のスコープにサービス変数を割り当てることで、両方の場所で同じ変数を持つことができます。

angular.module('myModule') 
    .service('Test', [ 
     function() { 
      var test = this; 

      test.myValue = 'default'; 

      return test; 
     } 
    ] 
); 

angular.module('myModule') 
    .directive('viewOne', [ 'Test' 
     function (Test) { 
      return { 
       restrict: 'E', 
       templateUrl: 'my/path/to/viewOne', 
       scope: {}, 
       link: function ($scope) { 
         $scope.myValue = Test.someValue; 
       } 
      }; 
     } 
    ] 
); 

angular.module('myModule') 
     .directive('viewTwo', [ 'Test' 
      function (Test) { 
       return { 
        restrict: 'E', 
        templateUrl: 'my/path/to/viewTwo', 
        scope: {}, 
        link: function ($scope) { 
          $scope.myValue = Test.someValue; 
        } 
       }; 
      } 
     ] 
    ); 
0

あなたは別のビューにあるビューからのデータを渡すためTempDataをを使用することができます。

+0

どこで使用しますか?インデックスのコントローラーでちょうどいいですか? TempDataのように["items"] = items;次のコントローラのitems = TempData ["items"]? – user4648142

0

以下の回答を確認してください。リンクの下のチェックのための

public ActionResult Index() 
{ 
    var model = new Review() 
      { 
       Body = "Start", 
       Rating=5 
      }; 
    TempData["ModelName"] = model; 
    return RedirectToAction("About"); 
} 

public ActionResult About() 
{  
    var model= TempData["ModelName"];  
    return View(model); 
} 

http://www.squaredroot.com/2007/12/20/mvc-viewdata-vs-tempdata/

関連する問題