将动态数据存储在变量中以备将来使用 - Angular.js
Storing dynamic data in variable for future use - Angular.js
我正在制作一个简单的程序,我需要在其中存储一定的范围值以供以后使用。范围本身的值可能会更改,但随后我的旧变量将被使用并返回所需的值。
.HTML:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<button ng-click="new()">New Name</button>
<button ng-click="old()">Old Name</button><br/>
{{name}}
<script>
//module declaration
var app = angular.module('myApp',[]);
//Controller declaration
app.controller('myCtrl',function($scope){
$scope.new = function(){
$scope.name = "Lina";
var store = $scope.name;
$scope.name = "Peter";
}
$scope.old = function(){
$scope.name = store;
}
});
</script>
</body>
</html>
期望:
On click of Old 'Lina' must appear.
结果:
On click of Old "Peter" does not change!
唉,我需要一些方法来存储某些范围对象的值,以便在以后的阶段使用。有人可以帮忙???
根据我的经验,我正在使用在其他变量中复制旧数据来处理这种情况。
例:
假设我有一个变量XYZ 在我的范围内所以我将在 XYZOLD 中创建一个变量。在 XYZOLD 中,我将复制该数据,但处理您必须遵循以下方法的数据。
$scope.xyzold = angular.toJson($scope.xyz);
$scope.xyzold = JSON.parse($scope.xyzold);
使用此代码,您可以在 XYZ 更改时复制旧数据 n 对旧数据没有影响
问题在于store
JavaScript 中的变量在使用 var
定义时作用域为封闭函数,这意味着当读取 store
时 $scope.old
实际上读取了一个未初始化的变量
这将"共享"整个控制器的变量,因为范围将是控制器定义的封闭函数。该变量在嵌套函数中可见。
app.controller('myCtrl',function($scope){
var store;
$scope.new = function(){
...
store = xyz;
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Node.js将JSON数据存储在数组中以备将来使用
- 根据 Knockout.js 中的复选框绑定将来的日期选择器最大日期
- 将动态数据存储在变量中以备将来使用 - Angular.js