jus*_*ser 12 javascript angularjs
我正在尝试更新作为$ scope一部分的页面上的一些文本.但我一直收到这个错误:
Error: [$rootScope:inprog] [http://errors.angularjs.org/1.2.15/$rootScope/inprog?p0=%24apply][1]
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:6:450
at m (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:101:443)
at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:108:301)
at h.$scope.changeLang (http://treenovum.es/xlsmedical/js/medical-app.js:80:16)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:169:382
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:186:390
at h.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:108:40)
at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:108:318)
at HTMLAnchorElement.<anonymous> (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:186:372)
Run Code Online (Sandbox Code Playgroud)
显然我做错了什么.:)关于如何解决这个问题的任何想法?我希望页面更新到范围中的新变量.
这是我用于更新的代码:
medicalApp.controller('MainCtrl', function($scope, $cookies, getTranslation) {
getTranslation.get(function(data){
$scope.translation = data;
});
$scope.changeLang = function (lang) {
console.log(lang);
$cookies.lang = lang;
$scope.$apply(function(){
getTranslation.get(function(data){
$scope.translation = data;
console.log(JSON.stringify($scope.translation));
});
});
};
});
Run Code Online (Sandbox Code Playgroud)
html:
<body ng-controller="MainCtrl">
...
<div class="header-lang col-xs-4">
<p>
<a href="#" ng-click="changeLang('de')">DE</a> |
<a href="#" ng-click="changeLang('fr')">FR</a></p>
<div>{{ translation.text }}</div> <---- Example variable I want updated.
...
Run Code Online (Sandbox Code Playgroud)
我也在为我加载的每个页面使用ngRoute和单独的控制器,如果它有任何东西吗?
M.j*_*vid 21
如果您的模板在更改模型后没有更改并且需要使用$scope.$apply,则可以使用$scope.$applyAsync而不是使用此模板.
https://github.com/angular-ui/ui-codemirror/issues/73
Son*_*Nun 14
您正在使用$scope.$apply(...)函数内部,changeLang因此您将获得常见的"已在摘要中"错误.你不需要把调用getTranslation放在$ scope.$ apply(...)块中,因为ng-click你已经处理好了.突然出来,它应该工作.另外,我建议使用非缩小版本的angular for dev,这样你就可以在控制台中看到更好的错误.
| 归档时间: |
|
| 查看次数: |
29816 次 |
| 最近记录: |