AngularJS - 保存用户输入的文本并将其显示在不同的页面中

时间:2016-07-03 11:10:38

标签: angularjs

我在一个页面中有一个输入文本。我想使用angular存储来自此输入的信息,因此当移动到另一个页面时,我可以在另一个输入文本中显示它。 我尝试过使用ng-modelng-init

<input type="text" ng-model="inputText" ng-init="userText">

进入控制器

$scope.userText = $scope.inputText;

但它似乎不起作用。你可以看到a working plunker here。提前谢谢!

PS:我需要在两个页面之间进行(不是单页然后路由)。

2 个答案:

答案 0 :(得分:2)

基本上发生的事情是,当您更改页面时,您的变量会被重置。您可以使用localstorage实现所需。以下是一个例子

JS:

var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {

  $scope.saved = localStorage.getItem('userText');
    $scope.userText = (localStorage.getItem('userText')!==null) ? $scope.saved : "";


  $scope.editText = function(){
    localStorage.setItem('userText', $scope.userText);
  } 

});

第1页:          

<head>
  <link rel="stylesheet" href="style.css">
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
  <script src="script.js"></script>

</head>

<body ng-app="myApp" ng-controller="myCtrl">
  <a href="index.html">Home</a>
  <a href="anotherpage.html">Another page</a><br><br><br>
  <input type="text" ng-model="userText" ng-keyup="editText()">

</html>

第2页:          

<head>
  <link rel="stylesheet" href="style.css">
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
  <script src="script.js"></script>

</head>

<body ng-app="myApp" ng-controller="myCtrl">
  <a href="index.html">Home</a>
  <a href="anotherpage.html">Another page</a><br><br><br>
  <input type="text" ng-model="userText" ng-keyup="editText()">
  <h1>This is Another Page!</h1>
</body>

</html>

请检查此plunker:http://plnkr.co/edit/eyywQGgWjhC8gS7Wprcw?p=preview

答案 1 :(得分:0)

您可以将rootscope / localstorage / URL存储为参数。目标网页上的检索值