簡體   English   中英

當我使用angularjs向后導航時如何傳遞參數

[英]how to pass parameters when i navigate back using angularjs

當我向后導航時,angularjs將重新使用上一個視圖的控制器。

$window.history.back();

我想在重新加載上一個視圖時調用刷新(在某些情況下)。 當我“回到”它時,如何將參數傳遞給前一個控制器? 還是有更好的方法可以使用angularjs向后導航?

通過查詢字符串參數可以很容易地完成參數的傳遞。

通過創建自定義服務,然后將該服務注入到所需的任何控制器中,可以輕松地在控制器之間傳遞數據。

這是一個快速而骯臟的示例,該示例在服務中獲取/設置控制器的狀態數據,目的是在控制器的多個實例之間持久保存數據。

控制器:

var list;

list = angular.module('app.list', ['services.controller_state']);

list.controller('ListCtrl', [
  '$scope', 'ControllerState', function($scope, ControllerState) {
    var savedParams;
    savedParams = ControllerState.getParams();
    savedParams.data1 = "changed";
    return ControllerState.setParams(savedParams);
  }
]);

服務:

var module;

module = angular.module("services.controller_state", []);

module.factory("ControllerState", function() {
  var params;
  params = {
    data1: "foo",
    data2: "bar",
    data3: "zig",
    data4: "zag"
  };
  return {
    getParams: function() {
      return params;
    },
    setParams: function(prms) {
      var item, _results;
      _results = [];
      for (item in prms) {
        _results.push(params[item] = prms[item]);
      }
      return _results;
    }
  };
});

如果JavaScript看起來很時髦,那是因為我主要編寫CoffeeScript並使用了轉換器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM