我正在尝试设置我的Angular应用程序以在一页上获取输入,然后在第二页上显示它。我正在使用ng-model
将两个页面绑在一起。我希望通过对两个页面(存储值的页面)使用相同的控制器,该信息可以保存并显示在第二页上,但是会被擦除。
我做错了什么吗?在刷新页面之前,还有其他方法可以存储这些输入值吗?
厂:
angular.module('BSG').factory('airplaneFactory', function() {
var name = '';
var last_name = '';
var color = '';
return {
name: name,
last_name: last_name,
color: color
}
})
飞机控制器:
angular.module('BSG').controller('AirplaneCtrl', function($scope, airplaneFactory) {
'use strict';
$scope.name = airplaneFactory.name;
$scope.last_name = airplaneFactory.last_name;
$scope.color = airplaneFactory.color;
});
飞机提示控制器:
angular.module('BSG').controller('AirplanePromptsCtrl', function($scope, airplaneFactory) {
'use strict';
$scope.name = airplaneFactory.name;
$scope.last_name = airplaneFactory.last_name;
$scope.color = airplaneFactory.color;
});
路由:
.when('/airplane', {
templateUrl: 'templates/stories/airplane.html',
controller: "AirplaneCtrl"
})
.when('/airplaneprompts', {
templateUrl: 'templates/stories/airplane_prompts.html',
controller: "AirplanePromptsCtrl"
})
来自planet_prompts.html的摘录:
<h2>Who is this story about?</h2>
<p><input type="text" placeholder="name" ng-model="airplane.name"></p>
<h2>What is {{ airplane.name }}'s favorite color?</h2>
<p><input type="text" placeholder="favorite color" ng-model="airplane.color"></p>
来自planet.html的代码段:
Mine was {{ airplane.color }} and had a nametag on it that said {{ airplane.name }}
最佳答案
为每个页面新建一个控制器。
创建一个单独的服务来存储值。
每个控制器都使用此服务来获取/设置值。
查看主页https://angularjs.org/上的示例“为后端连接”(向下滚动)
Projects工厂是您的存储提供商。简单地将其从远程存储更改为本地存储
var myvalue;