我想在不强制页面刷新的情况下重置我的角度应用程序的状态。这样做的惯用方法是什么?
答案 0 :(得分:11)
我不知道是否有惯用的方法,但是如果你使用手动引导程序(即摆脱ng-app),那么重置你可以
示例HTML:
<div id="myid" ng-controller="MyCtrl">
<button ng-click="i = i+1">Add 1</button>
<span>i = {{i}}</span>
<button ng-click="reset()">RESET</button>
</div>
示例controller / JS(也包含jQuery),它将在onload上运行:
var $cleanCopy = $("#myid").clone();
function bootstrap() {
angular.bootstrap(document.getElementById('myid'), ['mymodule']);
}
angular.module('mymodule', []).controller('MyCtrl', function($scope) {
$scope.i = 1;
$scope.reset = function() {
// You need this second clone or angular bootstraps
// into the original clone!
$("#myid").replaceWith($cleanCopy.clone());
bootstrap();
};
});
bootstrap();
这是一个有效的JSFiddle:http://jsfiddle.net/zd377/2/