angularjs,范围不跨功能更新-使用ngTouch
angularjs, Scope not updating across functions - with ngTouch
我有一个这样的控制器:
$scope.myVar = 0;
$scope.back = function () {
$scope.myVar--;
};
$scope.next = function () {
$scope.myVar++;
};
如果next()(带ngClick)被调用3次,我们得到:
//1
//2
//3
但如果调用back()(带有ngSwipeLeft),则返回
//-1
当我明显期待
//2
我在这里错过了什么?
更新:包括ngTouch详细信息-这似乎是问题所在。。ngTouch包含在内
当我观察myVar值时,它似乎存在两次——一次是ngSwipeLeft调用,另一次是ingClick调用
你的代码片段对我来说很好。你需要提供更多的代码,错误可能在其他地方。查看下面的代码。
<!doctype html>
<html ng-app="myapp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-touch.min.js"></script>
<script>
var app = angular.module('myapp',['ngTouch']);
var controller = app.controller('mycontroller', ['$scope',function($scope){
$scope.myVar = 0;
$scope.back = function () {
$scope.myVar--;
};
$scope.next = function () {
$scope.myVar++;
};
}]);
</script>
</head>
<body ng-controller="mycontroller">
<div>
<h1>MyVar: {{myVar}}!</h1>
<input type="button" value="back" ng-click="back()"/>
<input type="button" value="next" ng-click="next()"/>
</div>
</body>
</html>
好的,所以我已经解决了我的问题-我没有在问题中提供足够的细节-但如果有人在未来遇到类似的事情,下面是发生的事情:
我在模板中用ng-controller="myCtrl"
声明了我的控制器,但也使用了路由,在路由中我声明了像这样的控制器
$routeProvider.when('/', {
templateUrl: 'myUrl.html',
controller: 'myCtrl'
});
这两次实例化了控制器,显然造成了问题(尽管这似乎是目前唯一出现的问题)。
从路由或视图中删除控制器定义就成功了。
需要查看你的html。不确定你的问题,这里有一个示例工作代码,
<div ng-app="myapp">
<div ng-controller="IncDecController">
<span>current value is {{myVar}}</span>
<img src="https://angularjs.org/img/AngularJS-large.png" ng-swipe-left="back()"></img>
<button ng-click="next()">next</button>
</div>
</div>
脚本:
angular.module('myapp', ['ngTouch'])
.controller('IncDecController', ['$scope', function ($scope) {
$scope.myVar = 0;
$scope.back = function () {
$scope.myVar--;
};
$scope.next = function () {
$scope.myVar++;
};
}])
相关文章:
- $rootScope未使用forEach进行更新
- 使用AngularJS中的筛选器更新给定的表
- 使用mongodb更新中的一个变量
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 使用它更新集合中的嵌套数组's索引
- 使用Javascript更新输入框中的文本
- 如何在范围值更改时使用 angularJs 更新 UI
- 使用rows().eevery().remove()时未更新行索引
- AngularJS ng repeat没有't在LocalStorage更改时更新(使用store.js)
- 我可以更新使用 innerhtml 显示的 javascript 变量吗?
- 记分牌不会更新 -- 使用 JavaScript 的 RPS 游戏
- angularjs,范围不跨功能更新-使用ngTouch
- HTML输入AJAX更新-使用Bootstrap将样式添加到输入字段
- 什么是最不丑陋的方式来强迫骨干.同步更新使用POST而不是PUT
- Knockout不会更新使用ko.mapping制作的模型中的字符串数组
- Select不会自动更新使用ng-repeat呈现的ng-model更改
- 如何克隆、更新& &;使用JavaScript附加一个变量
- PHP更新使用Javascript
- 更新:使用Javascript/Jquery改变负预定值的颜色
- 编辑字段后如何更新(使用jquery或javascript)'的值